您的位置:首页 > 运维架构

学习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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: