C++使用opencv處理兩張圖片的幀差
本文為大家分享了使用opencv處理兩張圖片幀差的具體代碼,供大家參考,具體內(nèi)容如下
這個(gè)程序是兩張圖片做幀差,用C++實(shí)現(xiàn)的,把不同的地方用框框起來(lái),仔細(xì)讀一下程序,應(yīng)該還是蠻簡(jiǎn)單的哈哈,opencv處理圖片的基礎(chǔ)。
opencv配置不用我說(shuō)了吧,源碼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);//做差求絕對(duì)值
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;
// 畫(huà)最小的圓,貼著黑色
//drawContours(currentframe, v, i, Scalar(0, 0, 255), 1, 8, hierarchy);
// 畫(huà)矩形包圍圓
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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問(wèn)題
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問(wèn)題的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10
基于Qt+opencv開(kāi)發(fā)的視頻播放器示例詳解
這篇文章主要為大家介紹了基于Qt+opencv開(kāi)發(fā)的視頻播放器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
C++面試題之結(jié)構(gòu)體內(nèi)存對(duì)齊計(jì)算問(wèn)題總結(jié)大全
這篇文章主要給大家總結(jié)了關(guān)于C++面試題中結(jié)構(gòu)體內(nèi)存對(duì)齊計(jì)算問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),通過(guò)這些介紹的內(nèi)容對(duì)大家在面試C++工作的時(shí)候,會(huì)有一定的參考幫助,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
基于atoi()與itoa()函數(shù)的內(nèi)部實(shí)現(xiàn)方法詳解
本篇文章是對(duì)atoi()與itoa()函數(shù)的內(nèi)部實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C++常用函數(shù)之XML JSON格式轉(zhuǎn)換問(wèn)題
XML在Json出現(xiàn)前應(yīng)用很廣泛,靈活性好,應(yīng)用語(yǔ)言也沒(méi)有限制,發(fā)展了這么長(zhǎng)時(shí)間后xml標(biāo)準(zhǔn)已經(jīng)很臃腫。這篇文章主要介紹了C++常用函數(shù)之XML JSON格式轉(zhuǎn)換問(wèn)題,需要的朋友可以參考下2020-02-02

