C++使用opencv處理兩張圖片的幀差
本文為大家分享了使用opencv處理兩張圖片幀差的具體代碼,供大家參考,具體內(nèi)容如下
這個程序是兩張圖片做幀差,用C++實(shí)現(xiàn)的,把不同的地方用框框起來,仔細(xì)讀一下程序,應(yīng)該還是蠻簡單的哈哈,opencv處理圖片的基礎(chǔ)。
opencv配置不用我說了吧,源碼cmake編譯,然后導(dǎo)入vs即可。
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { Mat currentframe, previousframe; Mat img1, img2, img3; img1 = imread("D:/1129/20006/1123120.jpg"); img2 = imread("D:/1129/20006/1128120.jpg"); img3 = imread("D:/1129/20006/1128120.jpg"); cvtColor(img1, previousframe, CV_BGR2GRAY); cvtColor(img2, currentframe, CV_BGR2GRAY); //轉(zhuǎn)化為單通道灰度圖 absdiff(currentframe, previousframe, currentframe);//做差求絕對值 threshold(currentframe, currentframe, 130, 255.0, CV_THRESH_BINARY); dilate(currentframe, currentframe, Mat());//膨脹 erode(currentframe, currentframe, Mat());//腐蝕 imshow("moving area", currentframe); //顯示圖像 vector<vector<Point> > v; vector<Vec4i> hierarchy; Mat result; Rect rect; findContours(currentframe, v, hierarchy, RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); for (int i = 0; i < hierarchy.size(); i++) { rect = boundingRect(v.at(i)); //rect.width *= 1.5; rect.height *= 1.5; // 畫最小的圓,貼著黑色 //drawContours(currentframe, v, i, Scalar(0, 0, 255), 1, 8, hierarchy); // 畫矩形包圍圓 rectangle(img3, rect, Scalar(0, 255, 0), 2); } imwrite("E:/res1.jpg", img3); imshow("moving area1", img3); //把當(dāng)前幀保存作為下一次處理的前一幀 //cvtColor(tempframe, previousframe, CV_BGR2GRAY); waitKey(33); system("pause"); return 0; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c語言數(shù)據(jù)結(jié)構(gòu)之棧和隊(duì)列詳解(Stack&Queue)
這篇文章主要介紹了c語言數(shù)據(jù)結(jié)構(gòu)之棧和隊(duì)列詳解(Stack&Queue),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08Qt5+QMediaPlayer實(shí)現(xiàn)音樂播放器的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Qt5和QMediaPlayer實(shí)現(xiàn)簡易的音樂播放器,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下2022-12-12關(guān)于C++函數(shù)模版的實(shí)現(xiàn)講解
今天小編就為大家分享一篇關(guān)于關(guān)于C++函數(shù)模版的實(shí)現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn)
這篇文章主要介紹了C++11顯示類型轉(zhuǎn)換的優(yōu)點(diǎn),幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下2020-08-08快速學(xué)習(xí)C語言中for循環(huán)語句的基本使用方法
這篇文章主要簡單介紹了C語言中for循環(huán)語句的基本使用方法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11C++下程序運(yùn)行時間的四種常用計時方法總結(jié)
這篇文章主要介紹了C++下程序運(yùn)行時間的四種常用計時方法,介紹了幾種常用的計時方法,包括低精度的clock()和GetTickCount(),以及高精度的gettimeofday()和QueryPerformanceCounter(),需要的朋友可以參考下2024-09-09C++中靜態(tài)初始化數(shù)組與動態(tài)初始化數(shù)組詳解
今天小編就為大家分享一篇C++中靜態(tài)初始化數(shù)組與動態(tài)初始化數(shù)組詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07