我正嘗試使用OpenCV執行圖像侵蝕。我想這樣做是這樣的:假設我有四個不同的元素OpenCV中的侵蝕
S1 = [ 0 1 0, 0 1 0, 0 1 0 ]
S2 = [ 0 0 0, 1 1 1, 0 0 0 ]
S3 = [ 0 0 1, 0 1 0, 1 0 0 ]
S4 = [ 0 1 0, 1 1 1, 0 1 0 ]
而且我想與原始圖像上這些元素進行四種不同的糜爛:
E1 = I & S1
E2 = I & S2
E3 = I & S3
E4 = I & S4
,其中「I」是原圖像,我用「&」來表示侵蝕的簡單性。然後,我想加入這四個來獲得最終的侵蝕:
E = E1 + E2 + E3 + E4
但隨着OpenCV的實現這些的時候,我已經在早期階段所遇到的困難。我聲明如下元素:
int S1[3][3] = { { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } };
int S2[3][3] = { { 0, 0, 0 }, { 1, 1, 1 }, { 0, 0, 0 } };
int S3[3][3] = { { 0, 0, 1 }, { 0, 1, 0 }, { 1, 0, 0 } };
int S4[3][3] = { { 0, 1, 0 }, { 1, 1, 1 }, { 0, 1, 0 } };
然後使用「CV ::蠶食」我對這些要素的困難,因爲它們不是可接受的類型。我如何使用這些元素來獲得上述的所需侵蝕?先謝謝你。
謝謝您的回答。我按照你的建議做了它,並且它給出了一個錯誤,說「未知函數中的Assersion失敗(_kernel.type()== CV_8U)」。 –
您是否注意到我將更改爲的編輯? –
Chris
啊哈,我錯過了。現在,它的工作原理,再次感謝您的答案。 –