본문 바로가기

컴퓨터 비전6

[OpenCV][Python] 주사위 눈금 읽기 🔎 명세 ## 주사위 읽기 ## • 책상 위에 놓인 임의의 주사위의 눈을 읽기 • 한 이미지 내에 여러 개의 주사위 존재 • 주사위의 눈을 오름차순으로 console에 출력하기 • Color 입력 • 주사위의 색상은 밝은 색 주사위 눈의 색상은 어두운 색 • 배경은 임의의 색 • 밝은 배경 혹은 어두운 배경 🔎 구현 단계 1. 회색조로 주사위 사진 파일 열기 • imread() 함수의 인자로 cv.IMREAD_GRAYSCALE을 넣어 회색조로 사진 파일을 열었다. 2. 이진화 • threshold() 함수의 인자로 cv.THRESH_OTSU를 이용했더니 잘 안나와서 cv.THRESH_BINARY를 한 후 threshold값을 220으로 주었다. _, dst = cv.threshold(src, 220, 2.. 2022. 12. 14.
[OpenCV][Python] 여러 개의 사각형 내의 원의 수 세기 | 주사위 눈금 읽기 | 여러 개의 사각형(객체) 대해 수행 🔎 명세 >> 사각형 내의 원의 수 세기 • 한 이미지 내에 여러 개의 사각형 존재 • 각 사각형 안에 각각 n개의 원이 있을 때, 각 사각형 별로 내 부에 있는 원의 숫자를 오름차순으로 console에 출력하기 • Grayscale 입력 • 배경은 어두운 색으로 가정 • 사각형의 배경색은 밝은 색으로 가정 • 원의 색은 어두운 색으로 가정 🔎 구현 단계 1. 회색조로 주사위 사진 파일 열기 • imread() 함수의 인자로 cv.IMREAD_GRAYSCALE을 넣어 회색조로 사진 파일을 열었다. 2. 이진화 • threshold() 함수의 인자로 cv.THRESH_OTSU를 이용해 자동으로 임계값을 결정했다. 3. 레이블링 • connectedComponents() 함수를 이용해 각 주사위 객체를 분리.. 2022. 12. 14.
[OpenCV][Python] 사각형 내의 원의 수 세기 | 주사위 눈금 읽기 | 하나의 사각형(객체) 대해 수행 🔎 명세 >> 사각형 내의 원의 수 세기 • 한 이미지 내에 하나의 사각형이 있고, 그 안에 n개의 원이 있을 때, 원의 숫자를 console에 출력하기 • Grayscale 입력 • 배경은 어두운 색으로 가정 • 사각형의 배경색은 밝은 색으로 가정 • 원의 색은 어두운 색으로 가정 🔎 구현 단계 1. 회색조로 주사위 사진 파일 열기 • imread() 함수의 인자로 cv.IMREAD_GRAYSCALE을 넣어 회색조로 사진 파일을 열었다. 2. 이진화 • threshold() 함수의 인자로 cv.THRESH_OTSU를 이용해 자동으로 임계값을 결정했다. 3. 외곽선 찾기 • findContours() 함수의 인자로 cv.RETR_CCOMP를 넣어 모든 외곽선을 검색하고 2단계 계층 구조를 구성하도록 했다.. 2022. 12. 14.
[Python] Numpy 에러 - AttributeError: partially initialized module 'numpy' has no attribute 'array' 간단하게 numpy 배열 생성 후 출력하려 했는데 다음과 같은 에러가 났다. Traceback (most recent call last): File "C:\Users\julia\PycharmProjects\ComputerVision\02_Numpy\numpy.py", line 1, in import numpy as np File "C:\Users\julia\PycharmProjects\ComputerVision\02_Numpy\numpy.py", line 5, in n_arr = np.array(arr) AttributeError: partially initialized module 'numpy' has no attribute 'array' (most likely due to a circular impo.. 2022. 11. 4.
[Python][OpenCV] 이미지 열고 밝기 조절 후 저장하기 - 평균 밝기를 기준으로 🔎 문제 아래의 sample.jpg 파일을 회색조(grayscale)로 열어서 이미지의 평균 밝기보다 어두운 픽셀들을 0으로 바꿔서 output.jpg로 저장하세요. import cv2 as cv def brightness(): # 회색조로 파일 열기 img1 = cv.imread('sample.jpg', cv.IMREAD_GRAYSCALE) if img1 is None: print('Image load failed!') return # 이미지의 평균 밝기보다 어두운 픽셀들 0으로 바꾸기 img1[img1 < img1.mean()] = 0 # output.jpg로 저장 cv.imwrite('output.jpg', img1) cv.imshow('image', img1) cv.waitKey() brightn.. 2022. 10. 13.
cv.cvtColor(frame, cv.COLOR_BGR2GRAY)후 write로 영상 저장 시 오류 [요약] cv.cvtColor(frame, cv.COLOR_BGR2GRAY)후 write로 영상 저장 시 오류가 나면 VideoWrite객체를 초기화 하는 과정에서 isColor=False의 속성값을 추가해준다. 웹캠에서 받아온 영상을 그레이 스케일로 저장하기 위해 다음의 코드를 짜고 있었다. import cv2 as cv def invert(): cap = cv.VideoCapture(0) # 웹캠에서 받아오기 if not cap.isOpened(): print("Camera open failed!") return # output.avi 동영상 파일 저장 w = round(cap.get(cv.CAP_PROP_FRAME_WIDTH)) h = round(cap.get(cv.CAP_PROP_FRAME_HEI.. 2022. 10. 12.