이진 이미지가 있습니다. 및 그 일부 섹션을 완전히 검정색으로 채우고 나머지는 흰색으로 채 웁니다. 내가 원하는 것은 여기서 가장 잘 설명 할 수 있습니다. 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.'unsigned char' 대신'char'에 대해 테스트하면'255' 값을 찾지 못할 것입니다 2. 당신이' > 0' 값을 반환합니다. 그렇지 않으면 내부 'for' 루프가 결과를 다시 덮어 씁니다. – Micka