OpenCv裁剪问题
OpenCv Cropping issue
我是openCV的新手。我正在尝试裁剪一个图像,但我写的代码没有裁剪它。请帮我。我得到了我感兴趣的区域,但当我试图复制它时,它不仅复制了感兴趣的区域,还复制了整个图像
#include<iostream>
using namespace std;
#include<vector>
#include<iostream>
#include<opencv2opencv.hpp>
CvMemStorage * st = 0;
CvHaarClassifierCascade * hcc= 0;
char * path = "C:/Users/Gardezi/Documents/Visual Studio 2012/Projects/AIMRL/AIMRL/haarcascade_frontalface_alt.xml";
bool startDetection(IplImage * img)
{
int i ;
cvCreateImage(cvGetSize(img) , img->depth , img->nChannels );
CvPoint pt1 , pt2;
IplImage * f ;
if (hcc)
{
CvSeq * face = cvHaarDetectObjects(img , hcc , st , 1.1 , 2 , CV_HAAR_DO_CANNY_PRUNING , cvSize(40 , 40 ) );
//Face to Data Base
for (i = 0 ;i < (face? face->total : 0 ) ; i++)
{
CvRect * r = (CvRect*)cvGetSeqElem(face , i );
pt1.x = r->x;
pt1.y = r->y;
pt2.x = r->x + r->width;
pt2.y = r->y + r->height;
cvRectangle(img , pt1 , pt2 , CV_RGB(255, 0 , 0) , 3 , 8 , 0);
cvSetImageROI(img , cvRect(pt1.x , pt1.y , pt2.x , pt2.y));
f = cvCreateImage( cvGetSize( img) , img->depth , img->nChannels );
cvCopy(img , f , NULL );
}
}
cvShowImage("Result" , f );
cvWaitKey(0);
return true;
}
void main()
{
IplImage * img;
hcc = (CvHaarClassifierCascade *)cvLoad(path , 0 , 0 , 0 );
img = cvLoadImage("download.jpg" , 0);
st = cvCreateMemStorage(0);
startDetection(img);
}
如果你是Opencv的新手,那么不要使用IplImage,而是使用cv::Mat。使用运算符圆括号进行裁剪是很简单的,如果需要在新图像中复制感兴趣的区域,可以调用clone()。
cv::Rect roi;
cv::Mat image;
[...] //Initialization of roi and image
cv::Mat roiOfImage = image(roi);
cv::Mat deepCopyOfRoiImage = image(roi).clone();
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 在Windows上用C++裁剪HBITMAP
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 在 2D 图像阵列中裁剪/插入 - 内存分配问题
- GTKMM:在叠加层上移动日历(裁剪问题)
- OpenCv裁剪问题