在使用openCV处理图像时,碰到了一个棘手的问题,现在我有一张图像,我想将图片分成两行
,三列,一种大小完全相同的6张图片,再分别对这六张小图片采用各自对应的transform 矩阵,
利用warpAffine函数分别对这六张图片进行仿射变换,再最后将六张图片合成一张完整的图片,
想问下我没有合适的openCV函数能做到这一点,现在自己对openCV这一块不熟悉,现在想
知道能否在不分割图像的情况下做到这一点,最差的方法是分割图像,那分割图像有什么函数
吗?非常感谢!
1.对cvMat操作:
Mat image= imreadimag);
Rect rect(10, 20, 100, 50);
Mat image_roi = image(rect);
注意: 这种操作实际上是引用的。也就是说,你对image_roi的操作,实际上也是对image上面对应的区域在操作
另外:srcImage(rect).copyTo(roiImage)也可以达到同样的效果!
2.IplImage* img 从图里面截取矩形的操作一般是这个样子的:
CvSize size= cvSize(40,50);//区域大小
cvSetImageROI(pSrc,cvRect(60,70,size.width, size.height));//设置源图像ROI
IplImage* pDest = cvCreateImage(size,pSrc->depth,pSrc->nChannels);//创建目标图像
cvCopy(pSrc,pDest); //复制图像
cvResetImageROI(pDest);//源图像用完后,清空ROI
cvSaveImage("Roi.jpg",pDest);//保存目标图像