OpenCV resize()导致在新图像中剪切



我正在使用resize命令在opencv中将720 x 480图像调整为1920 x 1080: http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html#resize

cv::Mat imgA = [self matForPixelBuffer:[self bufferA]]; 
cv::Mat imgB = [self matForPixelBuffer:[self bufferB]]; 
cv::Mat resizeB(imgA.rows, imgA.cols, CV_8UC4);
cv::resize(imgB, resizeB, resizeB.size(), 0, 0, cv::INTER_LINEAR);

imgA和imgB分别为1920x1080和720x480,缓冲区为CV_8UC4,即4字节的无符号字符,GRBA。

当我调整imgB的大小时,生成的图像resizeB被剪切。有谁能告诉我是什么原因造成的吗?

这是剪切的图像:http://pasteboard.co/1XzmTl1l.png

,这里是原来的:http://pasteboard.co/1XZkSKss.png

好的,我在程序中发现了一个错误:

cv::Mat img((int)[pixelBuffer width], (int)[pixelBuffer height], CV_MAKETYPE(CV_8U,(int)[pixelBuffer numberOfBytes]), [pixelBuffer data]);

我在构建我的垫子时颠倒了我的行和颜色。一旦我修复了这个问题,我就能够正确地缩放我的垫子

cv::Mat img((int)[pixelBuffer height], (int)[pixelBuffer width], CV_MAKETYPE(CV_8U,(int)[pixelBuffer numberOfBytes]), [pixelBuffer data]);

相关内容

  • 没有找到相关文章

最新更新