学习opencv 4.1答案
2018-03-07 17:26
148 查看
#include "stdafx.h"
#include "highgui.h"
#include "cv.h"
int main() {
IplImage* frame = cvLoadImage("H:\\3.jpg",1);
int width = frame->width; int height = frame->height;
IplImage* img = cvCreateImage( // combinated image
CvSize(3 * frame->width, frame->height),
frame->depth,
3);
IplImage* gray = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1); // single channel gray
IplImage* canny = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U,1);// single channel canny
cvConvertImage(frame, gray, CV_BGR2GRAY); // get the gray
cvCanny(gray, canny, 40, 160, 3);
IplImage* gray_r = cvCreateImage( // 3 channels gray
CvSize(gray->width,gray->height),
IPL_DEPTH_8U,
3);
IplImage* canny_r = cvCreateImage( // 3 channels canny
CvSize(canny->width, canny->height),
IPL_DEPTH_8U,
3);
cvCvtColor(gray, gray_r, CV_GRAY2BGR);
cvCvtColor(canny, canny_r, CV_GRAY2BGR);
int x1 = 0; int y = 0; // set ROI
int x2 = x1 + frame->width; int x3 = x2+gray->width;
CvRect rect1 = cvRect(x1, y, width, height);
CvRect rect2 = cvRect(x2, y, width, height);
CvRect rect3 = cvRect(x3, y, width, height);
CvScalar color(150, 100, 30);
cvSetImageROI(img, rect1); //combination
cvCopy(frame, img, 0);
cvResetImageROI(img);
cvSetImageROI(img, rect2);
cvCopy(gray_r, img, 0);
cvResetImageROI(img);
cvSetImageROI(img, rect3);
cvCopy(canny_r, img, 0);
cvResetImageROI(img);
CvFont font; // put texts
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1, 1, 1, 2, 8);
cvPutText(img, "BGR", cvPoint(10, 40), &font , color);
cvPutText(img, "Gray", CvPoint(x2+10, 40), &font, color);
cvPutText(img, "Canny", CvPoint(x3+10, 40), &font, color);
cvShowImage("img", img);
//cvShowImage("frame", frame);
//cvShowImage("gray", gray);
//cvShowImage("canny", canny);
cvWaitKey(0);
return(0);
}
#include "highgui.h"
#include "cv.h"
int main() {
IplImage* frame = cvLoadImage("H:\\3.jpg",1);
int width = frame->width; int height = frame->height;
IplImage* img = cvCreateImage( // combinated image
CvSize(3 * frame->width, frame->height),
frame->depth,
3);
IplImage* gray = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1); // single channel gray
IplImage* canny = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U,1);// single channel canny
cvConvertImage(frame, gray, CV_BGR2GRAY); // get the gray
cvCanny(gray, canny, 40, 160, 3);
IplImage* gray_r = cvCreateImage( // 3 channels gray
CvSize(gray->width,gray->height),
IPL_DEPTH_8U,
3);
IplImage* canny_r = cvCreateImage( // 3 channels canny
CvSize(canny->width, canny->height),
IPL_DEPTH_8U,
3);
cvCvtColor(gray, gray_r, CV_GRAY2BGR);
cvCvtColor(canny, canny_r, CV_GRAY2BGR);
int x1 = 0; int y = 0; // set ROI
int x2 = x1 + frame->width; int x3 = x2+gray->width;
CvRect rect1 = cvRect(x1, y, width, height);
CvRect rect2 = cvRect(x2, y, width, height);
CvRect rect3 = cvRect(x3, y, width, height);
CvScalar color(150, 100, 30);
cvSetImageROI(img, rect1); //combination
cvCopy(frame, img, 0);
cvResetImageROI(img);
cvSetImageROI(img, rect2);
cvCopy(gray_r, img, 0);
cvResetImageROI(img);
cvSetImageROI(img, rect3);
cvCopy(canny_r, img, 0);
cvResetImageROI(img);
CvFont font; // put texts
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1, 1, 1, 2, 8);
cvPutText(img, "BGR", cvPoint(10, 40), &font , color);
cvPutText(img, "Gray", CvPoint(x2+10, 40), &font, color);
cvPutText(img, "Canny", CvPoint(x3+10, 40), &font, color);
cvShowImage("img", img);
//cvShowImage("frame", frame);
//cvShowImage("gray", gray);
//cvShowImage("canny", canny);
cvWaitKey(0);
return(0);
}
相关文章推荐
- opencv学习(五)书本《学习Opencv》(中文版)第四章的作业答案第一题(opencv3.0.0+VS2012+win7)
- 学习opencv 习题答案-第三章
- 学习opencv课后答案第三章
- 学习OpenCV第四章第一题答案
- 学习opencv第三章答案
- 学习opencv 习题答案-第四章
- 学习OpenCV第四章第五题答案
- 学习opencv 第二章 习题5答案
- opencv学习(六)书本《学习Opencv》(中文版)第四章的作业答案第二题(opencv3.0.0+VS2012+win7)
- 学习OpenCV第四章第四题答案
- 学习openCV第四章答案
- 学习OpenCV第四章第二题答案
- OpenCV学习:Mat类详细解析+源码剖析(四)MSize类和Mstep类
- 有关opencv的学习(11)—有关回调函数
- OpenCV学习笔记5 - 图像绘制功能
- OpenCV学习笔记_对图像设置ROI
- OpenCV学习——XML的读写
- OpenCV学习——金字塔图像分割
- opencv的学习——入门
- opencv学习(二)avi格式视频播放