content_views"
class="htmledit_views">
<code class="language-cpp">本人自己做的:
#include "stdafx.h"
#include<opencv/cv.h>
#include<opencv/highgui.h>
int main()
{
//a.1从视频中趣图并显示。
CvCapture* capture = cvCreateFileCapture("C:\\test.avi");
IplImage* frame= cvQueryFrame( capture );
if( !frame ) return -1;
cvNamedWindow("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo", CV_WINDOW_AUTOSIZE );
cvShowImage("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo", frame );
//a.2将图转换为灰度图
IplImage* gray=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
cvCvtColor(frame,gray,CV_BGR2GRAY);
cvNamedWindow("convert2gray", CV_WINDOW_AUTOSIZE );
cvShowImage("convert2gray", gray );
//a.3对图像做canny边缘检测
IplImage* toCanny=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
cvCanny(gray,toCanny,50,150,3);
cvNamedWindow("Canny",CV_WINDOW_AUTOSIZE);
cvShowImage("Canny", toCanny);
//b.三合一
IplImage* class="tags" href="/tags/MERGE.html" title=merge>merge=cvCreateImage(cvSize(3*frame->width,frame->height),IPL_DEPTH_8U,3);
cvSetZero(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect1=cvRect(0,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect1);
frame->nChannels =3;
cvCopy(frame,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect2=cvRect(frame->width,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect2);
gray->nChannels =3;
cvCopy(gray,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect3=cvRect(2*frame->width,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect3);
toCanny->nChannels =3;
cvCopy(toCanny,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
//c.加标志
CvFont textfont = cvFont(10.0,1);
cvInitFont(&textfont, CV_FONT_HERSHEY_SIMPLEX, 0.5f, 0.5f, 0, 1);
cvPutText(class="tags" href="/tags/MERGE.html" title=merge>merge, "Frame", cvPoint(10,20), &textfont, cvScalar(0,0,255));
cvPutText(class="tags" href="/tags/MERGE.html" title=merge>merge, "Gray", cvPoint(frame->width+10,20), &textfont, cvScalar(255,0,0));
cvPutText(class="tags" href="/tags/MERGE.html" title=merge>merge, "toCanny", cvPoint(frame->width*2+10, 20), &textfont, cvScalar(0,255,0));
cvNamedWindow("class="tags" href="/tags/MERGE.html" title=merge>merge", CV_WINDOW_AUTOSIZE );
cvShowImage("class="tags" href="/tags/MERGE.html" title=merge>merge", class="tags" href="/tags/MERGE.html" title=merge>merge );
cvWaitKey(0);
cvDestroyWindow("class="tags" href="/tags/MERGE.html" title=merge>merge");
cvReleaseImage( &class="tags" href="/tags/MERGE.html" title=merge>merge );
cvReleaseCapture( &capture );
cvDestroyWindow("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo");
cvReleaseImage( &frame );
cvDestroyWindow("convert2gray");
cvReleaseImage( &gray );
cvDestroyWindow("Canny");
cvReleaseImage( &toCanny );
return 0;
/*//a.1从视频中趣图并显示。
CvCapture* capture = cvCreateFileCapture("c:\\test.avi");
IplImage* frame= cvQueryFrame( capture );
if( !frame ) return -1;
cvNamedWindow("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo", CV_WINDOW_AUTOSIZE );
cvShowImage("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo", frame );
//a.2将图转换为灰度图
IplImage* gray=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
IplImage* class="tags" href="/tags/IMAGE.html" title=image>image_gray=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,3);//用于合并显示的灰度图
cvCvtColor(frame,gray,CV_BGR2GRAY);
cvCvtColor(gray,class="tags" href="/tags/IMAGE.html" title=image>image_gray,CV_GRAY2BGR);
cvNamedWindow("convert2gray", CV_WINDOW_AUTOSIZE );
cvShowImage("convert2gray", class="tags" href="/tags/IMAGE.html" title=image>image_gray );
//a.3对图像做canny边缘检测
IplImage* toCanny=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
IplImage* class="tags" href="/tags/IMAGE.html" title=image>image_toCanny=cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,3);//用于合并显示的Canny边缘检测图
cvCanny(gray,toCanny,50,150,3);
cvCvtColor(toCanny,class="tags" href="/tags/IMAGE.html" title=image>image_toCanny,CV_GRAY2BGR);
cvNamedWindow("Canny",CV_WINDOW_AUTOSIZE);
cvShowImage("Canny",class="tags" href="/tags/IMAGE.html" title=image>image_toCanny);
//b.三合一
IplImage* class="tags" href="/tags/MERGE.html" title=merge>merge=cvCreateImage(cvSize(3*frame->width,frame->height),IPL_DEPTH_8U,3);
cvSetZero(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect1=cvRect(0,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect1);
cvCopy(frame,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect2=cvRect(frame->width,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect2);
cvCopy(class="tags" href="/tags/IMAGE.html" title=image>image_gray,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
CvRect rect3=cvRect(2*frame->width,0,frame->width,frame->height);
cvSetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge,rect3);
cvCopy(class="tags" href="/tags/IMAGE.html" title=image>image_toCanny,class="tags" href="/tags/MERGE.html" title=merge>merge,NULL);
cvResetImageROI(class="tags" href="/tags/MERGE.html" title=merge>merge);
cvNamedWindow("class="tags" href="/tags/MERGE.html" title=merge>merge");
cvShowImage("class="tags" href="/tags/MERGE.html" title=merge>merge",class="tags" href="/tags/MERGE.html" title=merge>merge);
cvWaitKey(0);
cvReleaseCapture( &capture );
cvReleaseImage( &frame );
cvDestroyWindow("class="tags" href="/tags/IMAGE.html" title=image>imagefromviedo");
cvReleaseImage( &gray );
cvReleaseImage( &class="tags" href="/tags/IMAGE.html" title=image>image_gray );
cvDestroyWindow("convert2gray");
cvReleaseImage( &toCanny );
cvReleaseImage( &class="tags" href="/tags/IMAGE.html" title=image>image_toCanny );
cvDestroyWindow("Canny");
cvReleaseImage( &class="tags" href="/tags/MERGE.html" title=merge>merge );
cvDestroyWindow("class="tags" href="/tags/MERGE.html" title=merge>merge");
return 0;*/
}
code>