帮忙给我解释一段C++代码和opencv相关的,要求给出详细的注释

帮忙给我解释一段C++代码和opencv相关的,要求给出详细的注释,第1张

如果IplImage图象pShowImg不存在,或图象里没有内容,或图象的深度不是8,返回到调用处;
如果图象pShowImg的通道既不是1,也不是3,返回到调用处;
根据图象pShowImg的大小建立矩形区域dst;
定义关注矩形区域roi;
roi矩形区域的初始大小与图象pShowImg一样;
填写windows位图信息;
bmi指向位图信息所在的空间;
bmih指向位图信息首部;
初始化位图信息首部,设置为全0;
填写首部的大小;
填写位图的宽度,与图象pShowImg的宽度一样;
填写位图的高度,根据pShowImg->origin的值决定是否反转;
bmih->biPlanes = 1; 位面设置为1;
bmih->biBitCount = 8pShowImg->nChannels; 位数设置为图象通道数的8倍;
压缩方式设置为:二进制的RGB位图;
设置调色板;
计算在图象里关注的区域(目标物体),将其中的内容复制到位图bmi,显示检测到的移动物体,拉伸到windows设备上下文。

int main()
{
IplImage src = cvLoadImage("imagejpg");

CvRect roi; // 给定区域位置坐标区域
roix = 0; roiy = 0; // roix,y,给定区域左角坐标
roiwidth = 20; //width, height 给定区域宽、高
roiheight = 20;
IplImage dst = cvCreateImage(cvSize(roiwidth,roiheight),src->depth,src->nChannals);

cvSetImageROI(src, roi); // 原图标定兴趣区域
cvCopy(src,dst);//原图兴趣区域copydst图像
cvResetImageROI(src); //释放标定原图兴趣区域
cvNamedWindow("src"); // 显示图像
cvShowImage("src",src);
cvNamedWindow("dst");
cvShowImage("dst",dst);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&src); //释放图像
cvReleaseImage(&dst);
return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13356120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存