반응형
이전 포스팅에서 말했던 대로 오늘은 numpy 모듈도 사용해서 구현해보았습니다. 사용한 샘플 사진은 저번 포스팅과 같습니다.
결과 :
코드 :
import cv2
import numpy as np
def cvt_to_binary(img,binary_threshold):
img1 = np.where(img > binary_threshold,255,img)
img2 = np.where(img1 < binary_threshold,0,img1)
return img2
img_name = input('Input Image Name : ')
binary_threshold = int(input('Input Binary Threshold : '))
img = cv2.imread(f'./img_sample/{img_name}.jpg',0)
binary_img = cvt_to_binary(img,binary_threshold)
print(binary_img)
cv2.imwrite(f'./processed_img/{img_name}_binary.jpg',binary_img)
cv2.imshow('origin_img', binary_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#when you control the two value in np.where function it will make errors.
numpy를 쓰니까 상당히 편하게 구현이 가능했습니다. np.where() 함수를 쓸 때 조건 이후에 조건에 맞는 변수를 설정해줄 수 있는데 if, else로 구분하듯이 두 가지를 쓸 수 있다고 numpy 모듈 설명에는 나와있는데요. 제가 잘 모르는 건지 안되더라고요. 그래서 해당 함수를 두 번 이용해서 threshold 기준으로 크면 255를 작으면 0을 넣도록 코드를 구성했습니다.
이외의 것들은 저번 그레이스케일과 동일하니 넘어가도록 하겠습니다. 만약 이 코드를 사용하신다면 이미지의 경로 등을 좀 변경하셔야 할 겁니다.
반응형
'Programming > Image Processing' 카테고리의 다른 글
[Image Processing][Python]이미지 스무딩(mean, median, k-nearest neighbor) (0) | 2021.12.09 |
---|---|
[Image Processing][Python]이미지의 도심 구하기(Centroid) (0) | 2021.12.08 |
[Image Processing][Python]이미지 히스토그램(Histogram) (0) | 2021.12.08 |
[Image Processing][Python]이미지 그레이스케일 변환 (0) | 2021.12.06 |