이미지를 읽기
cv2.imread()
이미지 변환
cv2.cvtColor()
이미지 출력
cv2.imshow()
이미지 저장
cv2.imwrite()
이미지 크기조정
cv2.resize()
이미지 뒤집기
cv2.flip()
이미지 창 종료
cv2.waitKey()
cv2.destroyAllWindows()
사각형
cv2.rectangle
원
cv2.circle()
선
cv2.line()
사용자 설정
cv2.polylines()
사용자 설정 & 내부 채우기
vertices = np.array([[10,10],[10,100],[100,10]],dtype=np.int32)
r_vertices = vertices.reshape((-1,1,2))
cv2.fillPoly(img,[r_vertices],color=(0,0,255))
글자 그리기
cv2.putText()
이미지 창에 마우스로 그리고 싶을 때
def draw_someting(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONDOWN:
cv2.rectangle(...)
cv2.namedWindow(winname='drawing') #참조할 수 있게 창 이름 설정
cv2.setMouseCallback('drawing',draw_circle) #콜백함수 바인딩
while True:
#이미지 갱신
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
cam=cv2.VideoCapture(0)
ret, frame = cam.read()
cv2.imshow('frame')
cam.release()
동영상 파일
video1 = cv2.VideoCapture('경로')
if video1.isOpened()== False:
print("잘못된 경로")
#fps 조절을 위해 프레임 마다 time.sleep을 해주면 보기 좋다.
while cap.isOpened():
cv2.addWeighted() #두 이미지의 크기가 같아야 함
ROI에 쓸 마스크 만들기
#크기를 영역과 맞춘 이미지 사용
# 마스크 만들기
img2 = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
mask1= cv2.bitwise_not(img2)
#마스크를 사용해 최종 붙여넣을 이미지
paste_img = cv2.bitwise_or(img,img,mask=mask1)
#이미지 붙인 결과
result_img= cv2.bitwise_or(roi,paste_img)
# 이후 슬라이싱으로 원래 이미지에 입력
cv2.threshold(img,127,255,cv2.THRESH_BINARY)
cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,8)
np.power()
cv2.filter2D(img,-1,kernel) #-1은 출력 영상의 데이터타입(ddepth)
cv2.blur(img,ksize=(5,5))
cv2.GaussianBlur(img,(5,5),10)
cv2.medianBlur(img,5)
cv2.bilateralFilter(img,9,75,75)#에지는 보존
침식
cv2.erode(img,kernel,iterations = 1)
팽창
cv2.dilate(img, kernel, iterations=1)
오프닝
cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
클로징
cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
소벨
cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)
cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])
color =('b','g','r')
for i,col in enumerate(color):
histr = cv2.calcHist([img],[i],None,[256],[0,256])
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.title('')
plt.show()
평활화
cv2.equalizeHist(img)