我正在使用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]);