簡體   English   中英

如何在c ++中翻轉cv :: mat?

[英]How to flip a cv::mat in c++?

我有一個3層的cv :: mat,我想在第一層和最后一層之間切換。 這樣的事情:( matlab風格)

cv::mat mt = image;
mt = [mt[:,:,3],mt[:,:,2],mt[:,:,1]];

更精致的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM