Python 40

03. 라벨

In [1]:from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈03. 라벨¶In [2]:from tkinter import *from PIL import Image, ImageTkroot = Tk()title_name = "YongSeokha Tkinter Project"root.title(title_name)root.geometry("640x480")# 첫 번째 이미지 파일 열기 및 변환img_v = Image.open("../Media/v.png")photo1 = ImageTk.PhotoImage(img_v)# 두 번째 이미지 파일 열기 및 변환img_x = Image.open("../Media/x.png")photo2 = ImageTk.Ph..

Python/Tkinter 2024.11.20

02. 버튼

In [1]:from Custom.mediahelper import show_video_as_html # 개발자 정의 모듈02. 버튼¶In [2]:from tkinter import *root = Tk()title_name = "YongSeokha Tkinter Project"root.title(title_name)root.geometry("640x480")# 첫 번째 버튼 생성 (기본 크기와 텍스트만 설정)btn1 = Button(root, text="버튼1") # '버튼1'이라는 텍스트를 가진 버튼 생성btn1.pack() # 버튼을 윈도우에 배치 (기본 배치 방식 사용)# 두 번째 버튼 생성 (패딩 설정)btn2 = Button(root, padx=5, pady=10, text="버튼2") #..

Python/Tkinter 2024.11.20

01. 프레임 생성

01. 프레임 생성¶ In [1]:from tkinter import *root = Tk() # 기본 윈도우 객체 생성title_name = "YongSeokha Tkinter Project"root.title(title_name) # 윈도우의 제목 설정root.geometry("320x240") # 윈도우 크기를 너비 640픽셀, 높이 480픽셀로 설정#root.geometry("640x480+300+300") # 윈도우 크기를 너비 640픽셀, 높이 480픽셀로 설정하고, 화면의 x=300, y=300 위치에 창을 배치root.resizable(True, False) # 창 크기 조절 가능 여부 설정: 너비(x)는 변경 가능, 높이(y)는 변경 불가root.mainloop() # 메인 이벤..

Python/Tkinter 2024.11.20

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