#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
Mat Frame,dstFrame;
int erosiontype = 0;
int kernelSize = 0;
void Erosion(int , void*);
int main(){
VideoCapture cap(0);
if(!cap.isOpened()){
cout<<"error!"<<endl;
}
namedWindow("Video");
namedWindow("dstVideo");
while(char(waitKey(1)!='q') && cap.isOpened()){
cap>>Frame;
cap>>dstFrame;
createTrackbar("type","dstVideo",&erosiontype,2,Erosion);
createTrackbar("size","dstVideo",&kernelSize,20,Erosion);
if(Frame.empty()){
cout<<"finish"<<endl;
break;
}
imshow("Video",Frame);
}
return 0;
}
void Erosion(int , void*){
int erosion_type;
if(erosiontype == 0){erosion_type = MORPH_RECT;}
else if(erosiontype ==1){erosion_type = MORPH_CROSS;}
else if(erosiontype ==2){erosion_type = MORPH_ELLIPSE;}
Mat element = getStructuringElement( erosion_type,
Size( 2*kernelSize + 1, 2*kernelSize+1 ),
Point( kernelSize, kernelSize ) );
erode(Frame, dstFrame, element );
imshow("dstVideo",dstFrame);
}
图像腐蚀与摄像头结合
最新推荐文章于 2020-10-15 13:56:08 发布