我有一個二進制圖像。 ,我想填充它的一部分完全黑色,並保持白色。 我想要什麼可以在這裏最好的解釋 - http://www.roborealm.com/tutorial/Obstacle_Avoidance/slide020.php 解釋 - 我從右下角開始,到達左上角。如果我找到任何非黑色像素,則具有Y座標小於它並具有相同X座標的所有像素將變爲黑色。這通過從圖像的底部開始並逐個像素地填充每個空白黑色像素直到非空黑色像素被看到。然後填充停止那個垂直列並繼續下一個。如何在opencv中填充二進制圖像的一面?
我在opencv中爲它寫了一段代碼。 我只提到該特定部分的代碼。
for (int j =dst.cols; j>=0; j--) {
for (int i =dst.rows; i>=0; i--) {
if (dst.at<char>(i,j) == 0){
dst.at<char>(i,j)=255;
}
if (dst.at<char>(i,j)>0){
for (int k =i; k>=0; k--) {
dst.at<char>(k,j)=0;
}
}
}
}
但它不工作,但它顯示分段故障(核心轉儲)。
謝謝你這麼多。我能知道我錯在哪裏嗎?謝謝。 – Shubham
它的工作。謝謝。 – Shubham
我看到兩個可能的問題:1.對'char'而不是'unsigned char'進行測試,你將不會找到'255'值,並且2.你必須設置值'i = 0;'在找到' > 0'值,否則內部for循環會再次覆蓋您的結果。 – Micka