opencv运用ROI的程序,不太懂,求讲解,最好详细点
#include<cv.h>#include<highgui.h>//ch3_ex3_12image_namexywidthheightadd#intmain(intar...
#include <cv.h>
#include <highgui.h>
// ch3_ex3_12 image_name x y width height add#
int main(int argc, char** argv)
{
IplImage* src;
cvNamedWindow("Example3_12_pre", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Example3_12_post", CV_WINDOW_AUTOSIZE);
if( argc == 7 && ((src=cvLoadImage(argv[1],1)) != 0 ))
{
int x = atoi(argv[2]);
int y = atoi(argv[3]);
int width = atoi(argv[4]);
int height = atoi(argv[5]);
int add = atoi(argv[6]);
cvShowImage( "Example3_12_pre", src);
cvSetImageROI(src, cvRect(x,y,width,height));
cvAddS(src, cvScalar(add),src);
cvResetImageROI(src);
cvShowImage( "Example3_12_post",src);
cvWaitKey();
}
cvReleaseImage( &src );
cvDestroyWindow("Example3_12_pre");
cvDestroyWindow("Example3_12_post");
return 0;
} 展开
#include <highgui.h>
// ch3_ex3_12 image_name x y width height add#
int main(int argc, char** argv)
{
IplImage* src;
cvNamedWindow("Example3_12_pre", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Example3_12_post", CV_WINDOW_AUTOSIZE);
if( argc == 7 && ((src=cvLoadImage(argv[1],1)) != 0 ))
{
int x = atoi(argv[2]);
int y = atoi(argv[3]);
int width = atoi(argv[4]);
int height = atoi(argv[5]);
int add = atoi(argv[6]);
cvShowImage( "Example3_12_pre", src);
cvSetImageROI(src, cvRect(x,y,width,height));
cvAddS(src, cvScalar(add),src);
cvResetImageROI(src);
cvShowImage( "Example3_12_post",src);
cvWaitKey();
}
cvReleaseImage( &src );
cvDestroyWindow("Example3_12_pre");
cvDestroyWindow("Example3_12_post");
return 0;
} 展开
1个回答
展开全部
ROI就是感兴趣区域,在一幅图像上你对那一块图像感兴趣就只对感兴趣的这一块区域进行处理。那么怎么得到感兴趣区域呢,就要用cvSetImageROI在图像上标定感兴趣区域,以后在对src进行的处理实质都是仅对src上这个ROI区域做的处理, 处理完成后一定要记得释放设置的感兴趣区域。
更多追问追答
追问
我是问这个程序的意思,最好精确到每句
追答
int main(int argc, char** argv)
{
IplImage* src; // 定义源图像
cvNamedWindow("Example3_12_pre", CV_WINDOW_AUTOSIZE); // 创建图像显示窗口
cvNamedWindow("Example3_12_post", CV_WINDOW_AUTOSIZE);
if( argc == 7 && ((src=cvLoadImage(argv[1],1)) != 0 )) // 引入源图像
{
int x = atoi(argv[2]); // atoi()函数功能是将字符串转换为整型数
int y = atoi(argv[3]);
int width = atoi(argv[4]);
int height = atoi(argv[5]);
int add = atoi(argv[6]);
cvShowImage( "Example3_12_pre", src); // 显示原图
cvSetImageROI(src, cvRect(x,y,width,height)); // 在原图上设定感兴趣区域
cvAddS(src, cvScalar(add),src); // 把src的元素与常量add相加放到src里
cvResetImageROI(src); // 释放感兴趣区域
cvShowImage( "Example3_12_post",src); // 显示处理后图像
cvWaitKey();
}
cvReleaseImage( &src ); //释放图像
cvDestroyWindow("Example3_12_pre");// 销毁窗口
cvDestroyWindow("Example3_12_post");
return 0;
}
博思aippt
2024-07-20 广告
2024-07-20 广告
博思AIPPT是基于ai制作PPT的智能在线工具,它提供了4种AI制作PPT的方式,包括AI生成大纲、AI直接生成PPT、文本生成PPT、AI提炼文档生成PPT,一站式集成多种AI生成PPT的方式,可满足办公用户的不同需求和使用场景。ai生...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询