6
我想測試是尋找特定墊深度& &一些渠道建立深度簡歷::墊
它的測試...
if (image.channels() == 1 && image.depth() == 8) ...
else if (image.channels() == 1 && image.depth() == 16) ...
else if (image.channels() == 1 && image.depth() == 32) ...
else
{
if ((image.channels() != 3) || (image.depth() != 8))
{printf("Expecting rgb24 input image"); return false;}
...
}
我比較喜歡的一個功能用一個虛構的墊進行測試,避免使用本地資源:
cv::Mat M(255, 255, CV_8UC3, cv::Scalar(0,0,255));
printf("M: %d %d \n", M.channels(), M.depth());
cv::Mat M1(255, 255, CV_32F, cv::Scalar(0,0,255));
cv::Mat M2(255, 255, CV_32FC3, cv::Scalar(0,0,255));
cv::Mat M2(255, 255, CV_8SC3, cv::Scalar(0,0,255));
我同種組合的試驗,但如果我打印,我得到0的深度。
我也嘗試加載PNG或JPG文件 - 有相同的結果(我不喜歡使用外部的文件...但我看不出爲什麼這不起作用)
cv::Mat M3 = cv::imread("c:/my_image.png", CV_LOAD_IMAGE_COLOR);
cv::Mat M3 = cv::imread("c:/my_image.jpg", CV_LOAD_IMAGE_COLOR);
他們都似乎有深度= 0?
還有什麼我需要做的嗎?我看不到任何文件...
謝謝
所以...在函數中的測試是錯誤的。 ..我改變它從C版本,它是如果(圖像 - > nChannels == 1 &&圖像 - >深度== 8)等等 – Thalia
是啊,C++接口是不同的,這裏是最新的深度文檔):http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-depth – cxyzs7