본문 바로가기
opencv

b/w 이미지의 칼럼(수직방향)별 검정(=0)픽셀수 카운트

by 꼰대코더 2023. 12. 2.

이미지에 있어서 검은 테두리 부분을 제거 하는 등을 위해서는 각 로우별, 칼럼별로 검은 픽셀수를 카운트하여 어느 threshold 치 이상인 경우에는 처리하는 로직등의 경우에 아래 코드가 유용하게 사용할 수 있을 것 같다.

 


아래코드는 수직방향인 칼럼의 검정픽셀수를 계산한다.
각 로별의 검정픽셀수도 응용할 수 있으리라 본다.

// GRAY인 경우에는 읽어들어 cv::threshold 로 이진화 할 필요가 있다.
// 이하는 이미지 자체가 흑백만이 존재하는 가정으로 하자.
cv::Mat1b img = cv::imread("img.png", CV_LOAD_IMAGE_GRAYSCALE);

cv::Mat1i black_pixels(img.cols, 1);

for(int x = 0; x < img.cols; x++){
  cv::Mat col = img.col(x);
  // 칼럼(수직방향)별의 검정픽셀수를 카운트하기 때문에 (높이 - 흰픽셀수)가 
  // 칼럼별 검은 픽셀수가 된다.
  black_pixels(x,0) = img.rows - cv::countNonZero(col);

'opencv' 카테고리의 다른 글

contour / labelling  (0) 2023.12.07
공백 메우기  (2) 2023.12.02
cv::Mat 이모저모  (1) 2023.11.29
이미지 회전  (0) 2023.11.27
스캔문서의 기울기 알아보기 - 2  (0) 2023.11.27