1

這是我的問題:最近,我通過Simulink Coder瞭解了一些關於從Simulink模型生成代碼的內容。該模型包括一個MATLAB Function塊,從灰度的視頻信號轉換使用至二值:將灰度視頻轉換爲二進制代碼生成

編輯: 二進制= im2bw(inputVideo,電平);

,因爲,我的應用程序,我發現它比Autothreshold塊(我不爲什麼)更精確,但Simulink Coder不支持im2bw功能(就像你可以在這裏看到http://www.mathworks.it/it/help/simulink/ug/functions-supported-for-code-generation--categorical-list.html#bsl0arh-1)。所以,我會嘗試創建一個outputVideo使用:

Binary = false(size(inputVideo)); % to inizialize 
Binary(inputVideo>=threshold)==true; 

...但是當我這樣做,與灰度圖像,outbinary圖像是全黑的圖像。有沒有辦法執行此轉換,而不使用Autothreshold塊或im2bw函數?提前致謝!

回答

3

此行是錯誤的:

Binary(inputVideo>=threshold)==true; 

在這裏,您與true比較Binary(inputVideo>=threshold)。正確的:

Binary(inputVideo>=threshold)=true; 
+0

我編輯上面的代替閾值與水平(從MATLAB幫助)。在我的情況下,它是0.15。我如何在代碼中找到閾值? – Orlok

+1

問題是'=='比較,你需要一個'='來分配。 – Daniel

+0

好吧,它的工作,但現在我怎麼能找到一個0.15的im2bw水平I閾值(與'單'作爲數據類型)?在im2bw中它介於0和1之間。 – Orlok

相關問題