안녕하세요 파이썬 초보입니다 :)
이미지 서치 하는데 막히는 부분이 있어서 질문 드려요
저장된 이미지를 화면에서 찾는 코드를 만들고 싶은데요
사각형으로 된 이미지는 잘 찾습니다
하지만 이미지의 배경을 지우고 그 이미지를 불러와서 이미지 서치 하면 못찾습니다
이것저것 만져보다가 confidence 를 엄청 낮추면 인식을 하더라구요.
그래서 혹시...저장된 이미지는 배경이 없지만, 파이썬이 그 이미지를 사각형으로 된 이미지로 인식을 하고 있는게 아닐까...라는 생각을 해보는데 실제로 어쩐지 몰라서 질문해봅니다
그리고 어떤식으로 접근을 해야될지...도와주세요
ps.글 쓰면서 생각을 해 봤는데 찾고싶은 이미지를 불러 온 다음에 코드로 배경을 지운 다음, 이미지 서치를 하면 되는걸까요?
배우면 배울수록 어렵네요 :/
꽤 어려운 작업인거 같네요. 배경을 지워도 이미지는 사각형 형태이기 때문에 지운 부분이 다른 색으로 교체되서 오히려 더 못 찾을 수 있어요.
저장된 이미지에서 배경을 지운 후 이미지 서치를 하는 경우, 이미지의 특징이나 윤곽선 등이 사라지게 되어 이미지 서치의 정확도가 떨어질 수 있습니다. 이 경우 confidence 값을 매우 낮추면 이미지 서치가 가능하긴 하지만, 정확도가 떨어지므로 실제 사용할 때는 부적합할 수 있습니다. 따라서, 찾고자 하는 이미지를 불러온 후 배경을 지우고 다시 이미지를 저장하는 것이 좋습니다. 이를 위해서는 이미지 처리 라이브러리인 OpenCV 등을 이용하여 이미지에서 배경을 제거하는 작업이 필요합니다. OpenCV를 사용하여 이미지에서 배경을 제거하는 방법은 다음과 같습니다.
위 코드에서는 cv2.imread 함수를 사용하여 이미지 파일을 읽어온 후, cv2.split 함수를 사용하여 알파 채널을 분리합니다. 이후 cv2.threshold 함수를 사용하여 배경을 구성하는 픽셀의 알파 값을 0으로 만들고, cv2.cvtColor 함수를 사용하여 BGRA 포맷에서 BGR 포맷으로 변환합니다. 마지막으로 cv2.bitwise_and 함수를 사용하여 배경을 제거한 이미지를 생성하고, cv2.imwrite 함수를 사용하여 결과 이미지를 저장합니다.