繁体   English   中英

将Mat图像转换为更大的Mat图像Opencv

[英]Transposing a Mat image into a larger Mat image, Opencv

我编写了一个函数,可以将Mat图像放入其中,并将其转置到空白图像中心的三倍大小。 我已经编写了这样做的功能,但是我认为可以在效率方面进行改进。

void transposeFrame( cv::Mat &frame){

   Mat new_frame( frame.rows * 3, frame.cols * 3, CV_8UC3, Scalar(0,0,255));

   Rect dim = Rect( frame.rows, frame.cols, frame.rows * 2, frame.cols * 2);

   Mat subview = new_frame(dim);

   frame.copyTo(subview);
   frame = subview;
}

有更好的执行此操作的方法吗?

我会用类似:-

Mat frame_tpsed;
cv::Mat::transpose(frame, frame_tpsed);
new_frame(Rect(frame.rows, frame.cols, frame.rows*2, frame.cols*2))  = frame_tpsed

在opencvDocs上转置: http ://docs.opencv.org/modules/core/doc/operations_on_arrays.html#void transpose(InputArray src,OutputArray dst)

没有尝试。 忘了提。

您可以使用copyMakeBorder函数。 但是,我认为它的运行速度不会很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM