Python - 영상처리 점자 처리 프로젝트2

2023. 2. 13. 21:46Python

1 ㅡ> 2 넘어가는데 한달...

이미지는 이어서 사용하겠습니다.



영상처리 점자 처리 프로젝트1 작성 중 문제

1. 빛이 반사되지 않는 사진을 적용한다.

2. 빛 부분을 해결한다. ( 모든 이미지가 빛이 있는 경우가 아니기 때문에) 모든 이미지를 밝기를 어둡게 한 후에 이진화 작업을 해보는 방법도 있을 거 같다)



1.2 번 해결 완료

 

input_img = cv2.imread('images/j1.png', cv2.IMREAD_COLOR)
val = 200 #밝기 조절때 사용 최적값을 찾아봤을때 200이 가장 좋았습니다.
array = np.full(input_img.shape, (val, val, val), dtype=np.uint8)
sub = cv2.subtract(input_img, array) #밝기 처리
gray = cv2.cvtColor(sub, cv2.COLOR_RGB2GRAY) # 밝기 처리한 이미지를 그레이스케일로 변경
out = gray.copy() # out에 그레이이미지를 복사
out = 255-out #색반전 . 이걸 하지않으면 배경색이 검정색이고 점자부분이 흰색이라 키포인트를 인식을 하지못했음.
cv2.imshow("out",out)

j1.png

sub 밝기 처리 이미지

 

out 색반전 O

j2.png

sub 밝기 처리 이미지
out 색반전 O

 

j3.png

 

sub 밝기 처리 이미지
out 색반전 O

t, threshold_img = cv2.threshold(out, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
cv2.imshow('threshold',threshold_img)
 

j1.png

색 반전 O

 

색 반전 X

j2.png

색반전 O
색박전 X

j3.png

 

색 반전 O
색 반전 X

params = cv2.SimpleBlobDetector_Params() #SimpleBlobDetector_Params 함수정보를 params에 저장
params.filterByArea = True #면적 필터 옵션
params.minArea = 2.0 * 2.0
params.maxArea = 20.0 * 20.0
detector = cv2.SimpleBlobDetector_create(params) # Blob 검출기 생성
keypoints = detector.detect(measure_img) #measure_img 이미지의detector.detect 값을 keypoint
detected_img = cv2.drawKeypoints(measure_img, keypoints, np.array([]), (0, 0, 255),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) # 키포인트 위치에 동그라미 그리기 size : 동그라미의 크기를 size 와 angle을 반영해서 그림

 j1.png

색 반전 O
색 반전 X

j2.png

색반전 O
색 반전 X

 

여기서 j2.png에서 키포인트를 잡아내지 못해서 색 반전이라는 생각했습니다. 

 

j3.png

색 반전 O
색 반전 X

3.png 이미지 또한 keypoint를 잡지 못해서 색 반전 효과를 준 이후로부터는 keypoint를 잡을 수 있었습니다.



점자 이미지의 keypoints를 가지고 와서 key point 위치를 잡을 수 있습니다.

지금은 좌표들의 위치 (x, y)를 알 수 있지만

오류

주황색으로 체크해둔 이미지만 x축이 살짝 아래로 내려가 있어서 오차가 발생하고 있습니다.

그 부분을 수정하거나 해결방법이 있는지 찾아보도록 하겠습니다.



지금은 딥러닝으로 이미지 부분을 인식할 수 있는지 그 부분을 시도 중이라! 좀 늦어질 수 있을 거 같아요

 

'Python' 카테고리의 다른 글

Python Opencv 기초 - 1  (0) 2023.02.27
Python - 영상처리 점자 처리 프로젝트1  (0) 2023.01.10