OpenCV Python inpaint 함수 : 손상된 이미지 복원(Image Inpainting)OpenCV/OpenCV 강좌2024. 4. 4. 21:33
Table of Contents
반응형
inpaint 함수는 이미지에서 손상된 부분을 제거하고 그 자리를 자연스럽게 채워 넣어줍니다.
2024. 4. 4 최초작성
왼쪽 이미지가 원본 깊이 이미지입니다. 검은색으로 된 부분이 손상된 부분입니다. 오른쪽은 inpaint 함수를 사용하여 손상된 검은색 부분을 주변 픽셀로 메꾸어 자연스럽게 바꾼 결과입니다.
전체 코드입니다.
import cv2 # 이미지를 로드합니다. img_color = cv2.imread('fall-01-cam0-d-001.png') # 그레이 스케일 이미지로 변환합니다. img_gray = cv2.cvtColor(img_color, cv2.COLOR_BGR2GRAY) # 검은색 영역을 마스크로 사용하기 위해 임계값을 설정합니다. # cv2.THRESH_BINARY_INV를 사용하여 검은색 영역이 흰색이 되고, 나머지가 검은색이 되게 합니다. _, mask = cv2.threshold(img_gray, 1, 255, cv2.THRESH_BINARY_INV) # inpaint 함수를 사용하여 검은색 부분을 주변 색상으로 채웁니다. inpainted_image = cv2.inpaint(img_gray, # 손상된 원본 이미지 mask, # 손상된 부분 또는 수정하고 싶은 영역을 나타내는 마스크 이미지입니다. 손상된 부분은 흰색(255)이고 나머지 부분은 검은색(0)이어야합니다. 3, # 손상된 픽셀을 위해 고려할 주변 픽셀의 반경입니다 cv2.INPAINT_TELEA # 인페인팅 알고리즘을 선택합니다. cv2.INPAINT_TELEA 또는 cv2.INPAINT_NS ) # 결과를 화면에 표시합니다. img_result = cv2.hconcat([img_gray, inpainted_image]) cv2.imshow('result', img_result) cv2.waitKey(0) cv2.destroyAllWindows() |
위 코드에서 사용한 hconcat 함수 사용법은 아래 포스트를 참고하세요.
OpenCV Python – 이미지 연결하는 hconcat, vconcat 예제
https://webnautes.tistory.com/1903
이미지 출처
http://fenix.ur.edu.pl/~mkepski/ds/uf.html
링크에 있는 Depth data 이미지를 다운로드 받아서 이미지 한장을 사용했습니다.
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
Matplotlib의 컬러맵을 화면에 출력하는 OpenCV 예제 (0) | 2024.04.18 |
---|---|
OpenCV Python kmeans 예제 (0) | 2024.04.10 |
OpenCV Python 강좌 - 동영상의 배경 제거하고 움직이는 물체 검출 하기 ( Background Subtraction ) (23) | 2023.12.10 |
OpenCV 빌드 후 ModuleNotFoundError: No module named 'cv2' 에러 해결 (0) | 2023.10.28 |
OpenCV Python 동영상의 전체 프레임수를 알아내는 방법 (0) | 2023.10.28 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!