Python/OpenCV 17

17. 이미지 검출(윤곽선)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈17. 이미지 검출(윤곽선)¶윤곽선 (Contour): 경계선을 연결한 선¶In [2]:import cv2img = cv2.imread('../Media/images/card.png')img_copy = img.copy() # 사본show_image_with_pil(img, 'img')'img'1. 그레이 스케일 변환¶그레이스케일 이미지는 색 정보를 제거하고 밝기 정보만 남김.윤곽선 검출을 할 때 색상보다 밝기(명도) 정보가 중요.In [3]:gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)show_image_with_pil(gray, 'gray')'g..

Python/OpenCV 2024.11.19

16. 이미지 검출(경계선)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈16. 이미지 검출(경계선)¶Canny Edge Detection¶In [2]:import cv2img = cv2.imread('../Media/images/snowman.png')img = cv2.resize(img, None, fx = 0.5, fy = 0.5) # 이미지 크기 50% 줄임canny = cv2.Canny(img, 150, 200) # min value 하위 임계값, max value 상위 임계값cv2.imshow('img',img)cv2.imshow('ca..

Python/OpenCV 2024.11.19

15. 이미지 변환(열림 & 닫힘)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈15. 이미지 변환(열림 & 닫힘)¶열림 (Opening): 침식 후 팽창. 깍아서 노이즈 제거 후 살 찌움¶dilate(erode(image))In [2]:import cv2import numpy as npkernel = np.ones((3, 3), dtype=np.uint8)img = cv2.imread('../Media/images/erode.png', cv2.IMREAD_GRAYSCALE)img_color_reverse = cv2.bitwise_not(img) # 흑백전환erode = cv2.erode(img_color_reverse, kernel, iterations = 3..

Python/OpenCV 2024.11.19

14. 이미지 변환(팽창)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈14. 이미지 변환¶1. 이미지 변환(팽창)¶이미지를 확장하여 작은 구멍을 채움¶흰색 영역의 외곽 픽셀 주변에 흰색을 추가¶커널 크기 증가커널 크기를 늘리면 더 넓은 영역이 한 번에 영향을 받음.예: 5×5 커널은 3×3 커널보다 더 강력한 팽창 효과를 만듦.커널 값 변경커널 내부 값을 변경하면 연산의 효과가 달라짐.예: 특정 방향만 팽창하거나 특정 패턴을 강조.In [2]:import cv2import numpy as npkernel = np.ones((3, 3), dtype=np.uint8)img = cv2.imread('../Media/images/dilate.png', cv2..

Python/OpenCV 2024.11.18

13_2. 이미지 변형(이진화)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈13_2. 이미지 변형(이진화)¶Adaptive Threshold¶이미지를 작은 영역으로 나누어서 임계치 적용적응형 이진화 동작:입력 이미지의 작은 영역(block_size)마다 평균을 계산하고, 해당 평균에서 c를 뺀 값을 기준으로 이진화를 수행.지역적으로 조정되므로 조명 변화가 있는 이미지에서도 효과적.In [2]:import cv2import numpy as npdef empty(pos): #print(pos) passimg = cv2.imread('../Me..

Python/OpenCV 2024.11.18

13_1. 이미지 변형(이진화)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈  13_1. 이미지 변형(이진화)¶  Threshold¶ In [2]:import cv2import numpy as npimg = cv2.imread('../Media/images/book.png', cv2.IMREAD_GRAYSCALE) # 흑백으로 읽기img = cv2.resize(img, (1200,800)) # img 사이즈 변경# 두 번째 파라미터: 127은 임계값(threshold). 픽셀 값이 127보다 크면 흰색(255), 작거나 같으면 검정(0)으로 처리.#..

Python/OpenCV 2024.11.18

12. 이미지 변형(원근)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈  12. 이미지 변형(원근)¶  사다리꼴 이미지 펼치기¶ In [2]:import cv2import numpy as npimg = cv2.imread('../Media/images/newspaper.png')# 변환 후 이미지 크기 정의width, height = 640, 240# 원근 변환 좌표 정의# 입력 이미지에서 변환할 영역의 좌표(4개의 꼭짓점).# 순서: 왼쪽 위, 오른쪽 위, 오른쪽 아래, 왼쪽 아래.# 픽셀 좌표로 정의.src = np.array([[511, 352],[1008, 352],[1122, 584],[455, 594]], dtype = np.float32)..

Python/OpenCV 2024.11.18

11. 이미지 변형(흐림)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈11. 이미지 변형(흐림)¶가우시안 블러¶커널 사이즈 변화에 따른 흐림커널 크기가 크면 더 넓은 영역의 픽셀을 평균화해 부드러운 블러 효과.In [2]:import cv2img = cv2.imread('../Media/images/img.png')_3 = (3,3)_5 = (5,5)_7 = (7,7)kernel_3 = cv2.GaussianBlur(img, _3, 0) # 0 -> 표준편차kernel_5 = cv2.GaussianBlur(img, _5, 0)kernel_7 = cv2.GaussianBlur(img, _7, 0)cv2.imshow('img', img)cv2.imshow..

Python/OpenCV 2024.11.18

10. 이미지 변형(흑백)

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈10. 이미지 변형(흑백)¶불러온 이미지를 흑백으로 변경¶In [2]:import cv2img = cv2.imread('../Media/images/img.png')#img = cv2.imread('img.png', cv2.IMREAD_GRAYSCALE) # 이미지를 흑백으로 읽음dst = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 불러온 이미지를 흑백으로 변경cv2.imshow('img', img)cv2.imshow('dst', dst)cv2.waitKey(0)cv2.destroyAllWindows()show_image_with_pil(img, 'img..

Python/OpenCV 2024.11.18

09. 이미지 회전

In [1]:from Custom.mediahelper import show_image_with_pil # 개발자 정의 모듈9. 이미지 회전¶방향 회전¶In [2]:import cv2img = cv2.imread('../Media/images/img.png')rotate_90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) # 시계 방향 90도 회전rotate_180 = cv2.rotate(img, cv2.ROTATE_180) # 180도 회전rotate_reverse_90 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE) # 시계 반대 방향 90도 회전cv2.imshow('img',img)cv2.imshow('rotate_90', ro..

Python/OpenCV 2024.11.18