1. 程式人生 > >解決opencv canny輸出mat type無法修改問題

解決opencv canny輸出mat type無法修改問題

問題背景:
對影象進行canny運算之後,由於為黑白邊緣,outputarray的type強制轉為0。將其列印輸出(imshow)等均沒有問題,但若與原圖執行add,sub等運算時,將發生錯誤,為影象型別不匹配。


解決思路:
將outputarray的type轉為與原圖一致。


嘗試並失敗的方法有:
1. 宣告好影象的型別
Mat outputarray(512, 512, 16, Scalar(100));
//失敗,列印outputarray.type(),依然為0


2. 利用copyTo
Mat temp(512, 512, 16, Scalar(100));
outputarray.copyTo(temp);
//失敗,列印outputarray.type(),依然為0


3. 利用covertTo
//該方法雖然強制指定了Mat的type,但實際輸出發現並沒有轉換
//失敗,列印outputarray.type(),依然為0


解決方法:
imwrite("d:\\camera.jpg", outputarray);
Mat temp(512, 512, 0, Scalar(100));//temp的type如何定義其實無影響
temp = imread("d:\\camera.jpg");