学习openCV第四章答案
2013-03-08 09:16
246 查看
第一题:
#include "cv.h" #include "highgui.h" #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") int main(int argc, char** argv) { CvCapture* capture = cvCreateFileCapture("11.avi"); cvNamedWindow("origin",CV_WINDOW_AUTOSIZE); cvNamedWindow("gray",CV_WINDOW_AUTOSIZE); cvNamedWindow("canny",CV_WINDOW_AUTOSIZE); cvNamedWindow("totle", CV_WINDOW_AUTOSIZE); CvSize size = cvSize((int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)); IplImage* gray = cvCreateImage(size,IPL_DEPTH_8U,1); IplImage* gray3 = cvCreateImage(size,IPL_DEPTH_8U,3);//三通道灰度图像 IplImage* cannyImage = cvCreateImage(size,IPL_DEPTH_8U,1); IplImage* cannyImage3 = cvCreateImage(size,IPL_DEPTH_8U,3);//三通道canny图像 //size.width = size.width*3; IplImage* totle = cvCreateImage(cvSize(size.width*3,size.height),IPL_DEPTH_8U, 3); cvZero(totle); while (1) { IplImage* frame = cvQueryFrame(capture); if (!frame) { return -1; } cvShowImage("origin",frame); cvConvertImage(frame,gray,1); cvShowImage("gray",gray); //做canny运算 if (gray->nChannels != 1) { break; } cvCanny(gray,cannyImage,100,150,3); cvShowImage("canny",cannyImage); IplImage* img1 = cvCreateImageHeader(size,frame->depth,3); IplImage* img2 = cvCreateImageHeader(size,frame->depth,3); IplImage* img3 = cvCreateImageHeader(size,frame->depth,3); img1->origin = frame->origin; img1->widthStep = totle->widthStep;//这里注意,因为img1要成为在大图中的一部分,所以是大图每行字节长 img2->origin = frame->origin; img2->widthStep = totle->widthStep; img3->origin = frame->origin; img3->widthStep = totle->widthStep; cvCvtColor(gray,gray3,CV_GRAY2BGR); cvCvtColor(cannyImage,cannyImage3,CV_GRAY2BGR); img1->imageData = totle->imageData; //第一个指向大图的开始处,即第一行 cvCopy(frame,img1); img2->imageData = totle->imageData + frame->widthStep;//这里很关键,注意字节排列问题,所以不能用width cvCopy(gray3,img2); img3->imageData = totle->imageData + 2*frame->widthStep; cvCopy(cannyImage3,img3); cvShowImage("totle",totle); CvFont font = cvFont(10.0,1); cvInitFont(&font,CV_FONT_HERSHEY_SCRIPT_SIMPLEX,0.5f,0.5f,0,1); cvPutText(totle,"Frame",cvPoint(10,200),&font,cvScalar(0,0,255)); cvPutText(totle,"Frame_gray",cvPoint(10+size.width,200),&font,cvScalar(0,0,255)); cvPutText(totle,"Frame_canny",cvPoint(10+size.width*2,200),&font,cvScalar(0,0,255)); char c = cvWaitKey(33); if (c == 27) { break; } } cvReleaseCapture(&capture); cvReleaseImage(&gray); //cvReleaseImage(&gray); cvReleaseImage(&cannyImage); cvReleaseImage(&totle); cvReleaseImage(&gray3); cvReleaseImage(&cannyImage3); cvDestroyAllWindows(); return 1; }
相关文章推荐
- 学习opencv 习题答案-第四章
- opencv学习(五)书本《学习Opencv》(中文版)第四章的作业答案第一题(opencv3.0.0+VS2012+win7)
- 学习OpenCV第四章第四题答案
- 学习OpenCV第四章第二题答案
- opencv学习(六)书本《学习Opencv》(中文版)第四章的作业答案第二题(opencv3.0.0+VS2012+win7)
- 学习OpenCV(第四章 鼠标事件)
- opencv学习笔记第四章 图像的均值化
- 【读书笔记】学习OpenCV(中文版)第四章2
- 学习OpenCV 第四章课后题第一题(合并图像、缩放、字体)
- opencv学习(三)书本《学习Opencv》(中文版)第四章的样例Ex4-1(opencv3.0.0+VS2012+win7)
- 学习opencv 第二章 习题5答案
- 学习OpenCV第四章第一题答案
- 学习OpenCV第四章第五题答案
- 【读书笔记】学习OpenCV(中文版)第四章1
- 第四章 学习OpenCV——细说HighGUI
- 学习opencv第三章答案
- 学习opencv课后答案第三章
- 学习opencv 4.1答案
- c++ primer(第五版)学习笔记及习题答案代码版(第四章)表达式
- 学习opencv 习题答案-第三章