자동화

조회 수 422 추천 0 댓글 1

안녕하세요 파이썬 초보입니다 :)


이미지 서치 하는데 막히는 부분이 있어서 질문 드려요


저장된 이미지를 화면에서 찾는 코드를 만들고 싶은데요


사각형으로 된 이미지는 잘 찾습니다


하지만 이미지의 배경을 지우고 그 이미지를 불러와서 이미지 서치 하면 못찾습니다


이것저것 만져보다가 confidence 를 엄청 낮추면 인식을 하더라구요.


그래서 혹시...저장된 이미지는 배경이 없지만, 파이썬이 그 이미지를 사각형으로 된 이미지로 인식을 하고 있는게 아닐까...라는 생각을 해보는데 실제로 어쩐지 몰라서 질문해봅니다


그리고 어떤식으로 접근을 해야될지...도와주세요


ps.글 쓰면서 생각을 해 봤는데 찾고싶은 이미지를 불러 온 다음에 코드로 배경을 지운 다음, 이미지 서치를 하면 되는걸까요?

배우면 배울수록 어렵네요 :/



  • profile
    블루아 2023.04.01 10:51

    꽤 어려운 작업인거 같네요. 배경을 지워도 이미지는 사각형 형태이기 때문에 지운 부분이 다른 색으로 교체되서 오히려 더 못 찾을 수 있어요. 


    저장된 이미지에서 배경을 지운 후 이미지 서치를 하는 경우, 이미지의 특징이나 윤곽선 등이 사라지게 되어 이미지 서치의 정확도가 떨어질 수 있습니다. 이 경우 confidence 값을 매우 낮추면 이미지 서치가 가능하긴 하지만, 정확도가 떨어지므로 실제 사용할 때는 부적합할 수 있습니다. 따라서, 찾고자 하는 이미지를 불러온 후 배경을 지우고 다시 이미지를 저장하는 것이 좋습니다. 이를 위해서는 이미지 처리 라이브러리인 OpenCV 등을 이용하여 이미지에서 배경을 제거하는 작업이 필요합니다. OpenCV를 사용하여 이미지에서 배경을 제거하는 방법은 다음과 같습니다.

    
    
    python
    Copy code
    import cv2
    
    # 이미지 파일을 읽어옴
    img = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)
    
    # 배경 제거를 위한 전처리 작업
    alpha_channel = cv2.split(img)[3]
    retval, alpha_channel = cv2.threshold(alpha_channel, 254, 255, cv2.THRESH_BINARY)
    bgr = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)
    
    # 배경 제거
    result = cv2.bitwise_and(bgr, bgr, mask=alpha_channel)
    
    # 결과 이미지 저장
    cv2.imwrite('processed_image.png', result)
    
    

    위 코드에서는 cv2.imread 함수를 사용하여 이미지 파일을 읽어온 후, cv2.split 함수를 사용하여 알파 채널을 분리합니다. 이후 cv2.threshold 함수를 사용하여 배경을 구성하는 픽셀의 알파 값을 0으로 만들고, cv2.cvtColor 함수를 사용하여 BGRA 포맷에서 BGR 포맷으로 변환합니다. 마지막으로 cv2.bitwise_and 함수를 사용하여 배경을 제거한 이미지를 생성하고, cv2.imwrite 함수를 사용하여 결과 이미지를 저장합니다.


List of Articles
분류 제목 글쓴이 최근변경 추천
자유 프로그래밍 게시판 소개 피카부 2023.04.01 0/0
질문 메이플 거탐 관련 7 TAIIllL 2020.05.22 0/0
질문 완전 좋은거 나옴 한번씩 봐보세요 6 사스테 2018.03.11 0/0
질문 c#으로된 매크로 예제좀 얻을수 있을까요? maww 2018.03.06 0/0
질문 C# 이미지 검색 질문 1 maww 2018.03.21 0/0
질문 C# 질문이 있습니다. 3 Hello12 2018.03.21 0/0
질문 c# 윈폼 SendMessage 봉구스박보검 2018.04.02 0/0
질문 DirectX 캡처는 win7에서는 안되나요? 5 몰라무서워 2018.04.21 0/0
질문 AutoHotkey.dll c#에 참조추가해서 using으로 사용하는 법 2 봉구스박보검 2018.04.06 0/0
질문 C#으로 매크로 스샷나오면 클릭하기 구현방법질문입니다 7 까만사막 2018.04.11 0/0
질문 오토핫키 명령어를 c#에서 사용하는 방법 7 봉구스박보검 2019.06.09 0/0
질문 c#으로 매크로를 만드는 이유좀 알려주실분있나요? 2 광대승천 2018.05.23 0/0
질문 C# 한가지 질문이 있습니다. 1 수로 2018.06.24 0/0
질문 C# 콤보박스 질문이 있습니다. 2 수로 2018.06.27 0/0
질문 C# 모모앱플레이어에 마우스휠 이벤트를 먹게 하고 싶... kkmm 2018.07.04 0/0
질문 C# 콤보박스 리스트뷰 질문이 있습니다. 3 수로 2018.07.17 0/0
질문 c# param 질문있습니다 1 fofoh 2018.07.15 0/0
질문 C# 이미지인식에 대해서 질문이 있습니다. 1 수로 2018.07.25 0/0
질문 c# 이용하시는분 이미지 비교 어떻게 하시나요? 2 가끔보는하늘 2018.07.24 0/0
질문 혹시 앱플레이어를 최소화로 해서 돌리는건 뭘로하는건... 컴공부합시다 2018.08.04 0/0
Board Pagination Prev 1 2345678910 11 Next
/ 11

전체 최신 인기글

전체 주간 인기글