무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
PIL OSError: unknown file format 에러
안녕하세요?강의 잘 수강하고 있습니다. 한글을 적용하는 수업에서 하기와 같이 소스코드를 따라서 쳤습니다.파이썬 버전 : 3.12.2opencv 버전 : 4.9.0import cv2 as cvimport numpy as np#PIL (Python Imaging Library) : 이미지 처리를 위한 파이썬 라이브러리from PIL import ImageFont, ImageDraw, Imagedef myPutText(src, text, pos, font_size, font_color):img_pil = Image.fromarray(src)draw = ImageDraw.Draw(img_pil)font = ImageFont.truetype('fonts/gulim.ttc', font_size)draw.text(pos, text, font=font, fill=font_color)return np.array(img_pil)img = np.zeros((480, 640, 3), np.uint8)COLOR = (255, 255, 255)FONT_SIZE = 30img = myPutText(img, "나도코딩", (20, 50), FONT_SIZE, COLOR)cv.imshow('img', img)cv.waitKey(0)cv.destroyAllWindows() 이렇게 작성해서 실행을 하면 OSError: unknown file format 에러가 출력됩니다.인터넷 검색을 해보니 Pillow를 다시 설치해봐라, Image를 다시 설치해봐라많은 조언이 있었는데 결국 성공한 것이 없었습니다. 왠지 제 파이썬 경로상에 PIL이 제대로 설치가 안됐거나 다른 엉뚱한 것을 참조해서 발생하는 문제 같기도 한데 또 vscode의 python 인터프리터는 제대로 설정해서 PIL 작성부분에 오류는 뜨지 않습니다. 혹시 조언을 해주실 수 있으실까요?감사합니다.
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
mediapipe 코드를 어디서 받나요??
강의영상의 홈페이지가 변경되었는데 새로운코드는 어디서 받으면 되나요?
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
오류내용 모르겠습니다...
error Traceback (most recent call last) Cell In[18], line 3 1 import cv2 2 img = cv2.imread('img.jpg') ----> 3 cv2.imshow('img', img) 4 cv2.waitKey(0) 5 cv2.destroyAllWindows() error: OpenCV(4.9.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:971: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow' 이렇게 뜨는데 뭐가 문제인지 모르겠습니다 ㅠㅜ
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
Trackbar 값 변화가 안되는분들
갱신이 안되어서 empty 함수에서 변경하는걸로 바꾸니 되네요 버전은 cv2 4.8.1 입니다.import cv2 def change_trackbar(pos): thresh = cv2.getTrackbarPos('threshold', name) # Bar 이름, 창의 이름 ret, binary = cv2.threshold(img, thresh, 255, cv2.THRESH_BINARY) cv2.imshow(name, binary) img = cv2.imread('book.jpg', cv2.IMREAD_GRAYSCALE) name = 'Trackbar' cv2.namedWindow(name) cv2.createTrackbar('threshold', name, 127, 255, change_trackbar) # Bar 이름, 창의 이름, 초기값, 최대값, 이벤트 처리 cv2.waitKey(0) cv2.destroyAllWindows()참고하세용
- 해결됨파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
실행 오류
import cv2 import numpy as np img = cv2.imread('newspaper.jpg') width, height = 640, 240 # 가로 크기 640, 세로 크기 240으로 결과물 출력 src = np.array([[511, 352], [1008, 345], [1122, 584], [455, 594]], dtype = np.float32) # input 4개 지정 dst = np.array([[0, 0], [width, 0], [width, height], [0, height]], dtype = np.float32) # output 4개 지정 matrix = cv2.getPerspectiveTransfrom(src, dst) # Matrix 얻어옴 result = cv2.warpPerspective(img, matrix, (width, height)) # matrix대로 변환을 함 cv2.get cv2.imshow('img', img) cv2.imshow('result', result) cv2.waitKey(0) cv2.destroyAllWindows()--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[6], line 11 8 src = np.array([[511, 352], [1008, 345], [1122, 584], [455, 594]], dtype = np.float32) # input 4개 지정 9 dst = np.array([[0, 0], [width, 0], [width, height], [0, height]], dtype = np.float32) # output 4개 지정 ---> 11 matrix = cv2.getPerspectiveTransfrom(src, dst) # Matrix 얻어옴 12 result = cv2.warpPerspective(img, matrix, (width, height)) # matrix대로 변환을 함 14 cv2.get AttributeError: module 'cv2' has no attribute 'getPerspectiveTransfrom' 자꾸만 모듈에 속성이 없다고 뜨는데 따로 설치 해야 할 것이 있는 걸까요...? 해결 방법 좀 알려주세요 ㅠ,ㅠ
- 해결됨파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
resize 동영상 크기 조정 오류
# 동영상 고정 크기로 설정 import cv2 cap = cv2.VideoCapture('video.mp4') while cap.isOpened(): ret, frame = cap.read() if not ret: break frame_resized = cv2.resize(frame, (400, 500)) cv2.imshow('video', frame_resized) if cv2.waitKey(1) == ord('q'): break cap.release() cv2.destroyAllWindows() #cv2.waitKey(1)# 동영상 비율 크기로 설정 import cv2 cap = cv2.VideoCapture('video.mp4') while cap.isOpened(): ret, frame = cap.read() if not ret: break frame_resized = cv2.resize(frame, None, fx = 1.5, fy = 1.5, interpolation = cv2.INTER_CUBIC) cv2.imshow('video', frame_resized) if cv2.waitKey(1) == ord('q'): break cap.release() cv2.destroyAllWindows() #cv2.waitKey(1) Mac OS 사용자 입니다. 마지막 'cv2.waitKey(1)' 코드는 맥의 경우 해당 코드를 추가하지 않았을 때에 python 출력 창이 닫히지를 않아 추가하게 된 코드입니다. cv2.waitKey(1) 추가 -> 실행 시, 출력 영상의 창이 1초 떴다가 사라짐 / 오류 코드 안 뜸cv2.waitKey(1) 삭제 -> 실행 시, 출력 영상의 창이 아예 안 뜸 / 오류 코드 안 뜸 강의 속 강사 님처럼 비율 조정이 된 영상이 정상적으로 출력이 되어야 하는데 저는 그렇지 않아서 혹시 해결방법을 아시는 분이 계실까 질문 해봅니다...ㅠㅠ 오류 코드도 안 뜨고 실행은 되는데 보여져야 할 출력 영상이 보이지 않아 답답합니다... 도와주세요
- 해결됨파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
동영상 출력 창 크기
해당 강의에서 나오는 동영상 출력 예제를 실행 중인데요애초에 제가 선택한 동영상의 사이즈가 큰 건지 출력 창 자체가 full screen으로 출력이 됩니다 ㅜㅜ혹시 동영상 높이, 너비를 줄이는 방법이 있을까요...
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
ret, frame
따옴표를 넣어서 변수 지정에 두개를 넣을 수 있는 개념이 있는건지 아니면ret, frame 이라는 변수자체를 하나의 세트로 봐야하는건지 좀 헷갈려서요 if not ret: 할때 , frame은 빠졌는데 왜 인식이 잘 되는건가요? if not ret, frame: 이렇게 지정해주던지 아니면if not 문을 두개써서 각각 ret, frame 지정해줄거라 생각 했는데 그게아니라서 약간 혼동이 옵니다
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
관련이미지 링크
[학습자료] 수업에 필요한 이미지, 동영상 자료 링크입니다. 고양이 이미지 : https://pixabay.com/images/id-2083492/ 크기 : 640 x 390 파일명 : img.jpg 고양이 동영상 : https://www.pexels.com/video/7515833/ 크기 : SD (360 x 640) 파일명 : video.mp4 신문 이미지 : https://pixabay.com/images/id-350376/ 크기 : 1280 x 853 파일명 : newspaper.jpg 카드 이미지 1 : https://pixabay.com/images/id-682332/ 크기 : 1280 x 1019 파일명 : poker.jpg 책 이미지 : https://www.pexels.com/photo/1029807/ 크기 : Small (640 x 853) 파일명 : book.jpg 눈사람 이미지 : https://pixabay.com/images/id-1300089/ 크기 : 1280 x 904 파일명 : snowman.png 카드 이미지 2 : https://pixabay.com/images/id-161404/ 크기 : 640 x 408 파일명 : card.png 퀴즈용 동영상 : https://www.pexels.com/video/3121459/ 크기 : HD (1280 x 720) 파일명 : city.mp4 프로젝트용 동영상 : https://www.pexels.com/video/3256542/ 크기 : Full HD (1920 x 1080) 파일명 : face_video.mp4 프로젝트용 캐릭터 이미지 : https://www.freepik.com/free-vector/c... 파일명 : right_eye.png (100 x 100), left_eye.png (100 x 100), nose.png (300 x 100) 무료 이미지 편집 도구 : https://pixlr.com/kr/ (Pixlr E -Advanced Editor) [ 연락 ] nadocoding@gmail.com * 질문은 댓글을 통해서 해주세요 ^^ Images, Videos by pixabay, pexels : https://www.pixabay.com : https://www.pexels.com Designed by freepik : https://www.freepik.com
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
맥에서는 Trackbar가 잘 작동하지 않습니다.
맥에서 동일하게 주피터 노트북을 활용하여 코드를 따라하고 있는데, 트랙바가 삽입된 윈도우는 뜨는데 상단에 임계값(127) 글자도 안 뜰 뿐더러, 바도 하나만 보이고, 바를 움직일 수도 없게 되어 있습니다. 맥에서는 수행되지 않는 코드일까요?
- 미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
mediapipe 임포트가 안되요...
- mediapipe 그래도 따라해서 설치하고 import mediapipe as mp 로 시험해봤는데 에러만 떠요 TypeError Traceback (most recent call last) C:\Users\WORK_M~1\AppData\Local\Temp/ipykernel_17564/3811128499.py in <module> ----> 1 import mediapipe ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\__init__.py in <module> 15 16 from mediapipe.python import * ---> 17 import mediapipe.python.solutions as solutions ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\python\solutions\__init__.py in <module> 15 """MediaPipe Solutions Python API.""" 16 ---> 17 import mediapipe.python.solutions.drawing_styles 18 import mediapipe.python.solutions.drawing_utils 19 import mediapipe.python.solutions.face_detection ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\python\solutions\drawing_styles.py in <module> 18 from mediapipe.python.solutions import face_mesh_connections 19 from mediapipe.python.solutions import hands_connections ---> 20 from mediapipe.python.solutions.drawing_utils import DrawingSpec 21 from mediapipe.python.solutions.hands import HandLandmark 22 from mediapipe.python.solutions.pose import PoseLandmark ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\python\solutions\drawing_utils.py in <module> 23 import numpy as np 24 ---> 25 from mediapipe.framework.formats import detection_pb2 26 from mediapipe.framework.formats import location_data_pb2 27 from mediapipe.framework.formats import landmark_pb2 ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\framework\formats\detection_pb2.py in <module> 14 15 ---> 16 from mediapipe.framework.formats import location_data_pb2 as mediapipe_dot_framework_dot_formats_dot_location__data__pb2 17 18 ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\framework\formats\location_data_pb2.py in <module> 14 15 ---> 16 from mediapipe.framework.formats.annotation import rasterization_pb2 as mediapipe_dot_framework_dot_formats_dot_annotation_dot_rasterization__pb2 17 18 ~\AppData\Roaming\Python\Python39\site-packages\mediapipe\framework\formats\annotation\rasterization_pb2.py in <module> 34 containing_type=None, 35 fields=[ ---> 36 _descriptor.FieldDescriptor( 37 name='y', full_name='mediapipe.Rasterization.Interval.y', index=0, 38 number=1, type=5, cpp_type=1, label=2, ~\anaconda3\lib\site-packages\google\protobuf\descriptor.py in __new__(cls, name, full_name, index, number, type, cpp_type, label, default_value, message_type, enum_type, containing_type, is_extension, extension_scope, options, serialized_options, has_default_value, containing_oneof, json_name, file, create_key) 558 has_default_value=True, containing_oneof=None, json_name=None, 559 file=None, create_key=None): # pylint: disable=redefined-builtin --> 560 _message.Message._CheckCalledFromGeneratedFile() 561 if is_extension: 562 return _message.default_pool.FindExtensionByName(full_name) TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates