visual-studio-2010 - 如何在 Opencv 中使用 Cv Rect 裁剪图像。

标签 visual-studio-2010 visual-c++ opencv

我想裁剪1176*640的图像以保存1176*400大小的ROI。我正在使用以下代码片段来实现我仍然得到原始图像作为输出。

IplImage *CMyFunction::ROI(IplImage *pImage, CvRect ROI)
{
   IplImage *mROI = cvCreateImage(cvGetSize(*pImage), IPL_DEPTH_8U, 1);
   cvSetImageROI(pImage, rect_ROI); 
   cvCopy(pImage, mROI);
   cvResetImageROI(pImage);
   return mROI;
}

最佳答案

对于 cvCopy(),源和目标应该具有相同的大小和类型,即两个图像的宽度、高度、深度和 channel 数等参数应该相同。根据您的情况,您可以更改代码,例如

   IplImage *mROI = cvCreateImage(cvGetSize(pImage), pImage->depth, pImage->nChannels); //create dest with same size as source
   cvSetImageROI(pImage, rect_ROI); //Set roi on source
   cvSetImageROI(mROI, rect_ROI);  //set roi on dest
   cvCopy(pImage, mROI); 
   cvResetImageROI(pImage);
   cvResetImageROI(mROI);

IplImage *mROI = cvCreateImage(cvSize(rect_ROI.width,rect_ROI.height), pImage->depth, pImage->nChannels); // create an image of size as rect
cvSetImageROI(pImage, rect_ROI); //set roi on source
cvCopy(pImage, mROI);
cvResetImageROI(pImage);

关于visual-studio-2010 - 如何在 Opencv 中使用 Cv Rect 裁剪图像。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19889710/

相关文章:

visual-studio-2010 - Visual Studio 2010 - 大括号自动对齐已更改,如何修复此问题?

visual-studio-2010 - 使用 Visual Studio 2010 编译 QT 时缺少 include

c# - 是否可以在 Windows 中使用 Visual Studio 连接到远程 Linux 机器中的 MySQL 数据库

c++ - 错误: C2057: expected constant expression

c++ - 是什么导致双重释放或损坏(out)错误?

opencv - 确定数据类型并用作模板类型名

visual-studio-2010 - 将 TortoiseMerge 与 Visual Studio 和 TFS 结合使用 - 合并目标(未找到)

qt - 程序意外结束

c++ - 添加对 boost::fusion::vector 的引用

image - 到对象网络摄像头 C920HD 的距离或使用 OpenCV calibrate.py