《学习opencv》课后题:4.1.c如何显示文字标签?

来源:互联网 发布:mac没声音 编辑:程序博客网 时间:2024/06/03 13:52

使用cvputtext函数可以实现文本的添加功能:代码如下

#pragma region (exercise 4.1)//---------------------------4.1-----------------------//题目说明:1-读取图片,2-处理得到灰度图,3-进行canny检测,4-显示在不同图片中。5-显示文本//-----------------------------------------------------//头文件包含#include<opencv\cv.h>#include<highgui.h>void cvText(IplImage* img, const char* text, int x, int y){CvFont font;cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,1.0, 1.0, 0, 2);CvScalar textColor = cvScalar(0, 255, 255);CvPoint textPos = cvPoint(x, y);cvPutText(img, text, textPos, &font, textColor);}//主函数int main(){//读取图片CvCapture* capture = cvCreateFileCapture("shipin.avi");//进行判断是否成功读入图片if (!capture) return -1;IplImage* frame = cvQueryFrame(capture);//创建一个空图片用来装灰度图片IplImage* dstImage_gray = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 1);//创建孔图片装canny检测的图片IplImage* dstImage_canny = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 1);//创建空图片放三张子图片IplImage* result = cvCreateImage(CvSize(frame->width * 3, frame->height), IPL_DEPTH_8U, 3);while (1){IplImage* frame = cvQueryFrame(capture);//转化灰度图cvConvertImage(frame, dstImage_gray, 0);//进行canny检测cvCanny(dstImage_gray, dstImage_canny, 30, 100, 3);//创建第一个子ROI区域cvSetImageROI(result, CvRect(0, 0, frame->width, frame->height));result->nChannels = 3;cvCopy(frame, result);cvText(result, "color", 100,100);cvResetImageROI(result);//创建第二个子ROI区域cvSetImageROI(result, CvRect(frame->width, 0, frame->width, frame->height));result->nChannels = 1;cvCopy(dstImage_gray, result);cvText(result, "gray", 100, 100);cvResetImageROI(result);//创建第三个子ROI区域cvSetImageROI(result, CvRect(frame->width * 2, 0, frame->width, frame->height));result->nChannels = 1;cvCopy(dstImage_canny, result);cvText(result, "canny", 100, 100);cvResetImageROI(result);//显示图片cvNamedWindow("result");cvShowImage("result", result);if (cvWaitKey(20) == 27){break;}}//等待输入if (cvWaitKey(20) == 27){return -1;}return 0;}#pragma endregion

效果如下图:请忽略效果。你们可以根据自己的需求进行相应的更改。

0 0