提问者:小点点

C++openCV mat初始化


我对opencv完全陌生,我正在尝试从两种不同类型的数据初始化两个CV::Mat矩阵。 一个是uint16_t灰度值的简单单通道数组,第二个应该从uint8_t值数组中保存RGB值,其中RGB值保存RGB565(每个像素占用2个uint8_t,所以基本上是uint16_t数组)。 我想要一个单香奈尔矩阵,和一个三香奈尔矩阵(可能会在某个时候转换成一香奈尔矩阵。。。但我还没有完全做到。

function(uint16_t *oneChanell, int oneChanellWidth, int oneChanellHeight, uint8_t *rgb, int rgbWidth, int rgbHeight){
...
    cv::Mat M1 = cv::Mat(oneChanellHeight, oneChanellWidth, CV_16UC1, oneChanell);
    cv::Mat M2 = cv::Mat(rgbHeight, rgbWidth, CV_16UC3, rgb);
...
}

现在,我意识到第二个初始化是错误的。 这就是我的问题的一部分,如何最好地将rgb565values数组转换为CV::MAT。 然而,在我的理解中,第一次初始化应该可以工作。 当用CV::Imwrite测试时,第一个只产生大小正确的空白白色图片,第二个是相同(正确)图片的三个部分重叠的siluets,但不是RGB格式的。 任何建议都会被采纳。


共1个答案

匿名用户

null

...

cv::Mat M2 = cv::Mat(rgbHeight, rgbWidth, CV_16UC1, rgb);

//convert mat format from bgr565 to rgb
cv::Mat M2_rgb;
cv::cvtColor(M2, M2_rgb, COLOR_BGR5652RGB);

...

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++opencv|mat|初始化)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?