[英]How to flip a cv::mat in c++?
I have a cv::mat with 3 layers, and I want to switch between the first and the last layers. 我有一个3层的cv :: mat,我想在第一层和最后一层之间切换。 Some thing like this:(matlab style)
这样的事情:( matlab风格)
cv::mat mt = image;
mt = [mt[:,:,3],mt[:,:,2],mt[:,:,1]];
More polished ifryed's solution: 更精致的ifryed解决方案:
#include <algorithm>
cv::Mat im = getImage();
std::vector<cv::Mat> img_rgb;
cv::split(im,img_rgb);
std::iter_swap(img_rgb, img_rgb+2);
cv::merge(img_rgb,im);
cv::Mat im = getImage();
cv::Mat tmp = cv::Mat::zeros(cv::Size(im.rows,im.cols),CV_8UC1);
std::vector<cv::Mat> img_rgb;
cv::split(im,img_rgb);
img_rgb[0].copyTo(tmp);
img_rgb[2].copyTo(img_rgb[0]);
tmp.copyTo(img_rgb[2]);
cv::merge(img_rgb,im);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.