[英]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.