import cv2
ori = cv2.imread("../fff/crayon.jpg")
color = []
def mouse_event(event,x,y, flags, param):
global ori,color
# color = []
if event == cv2.EVENT_FLAG_RBUTTON:
color = ori[y,x]
print(color)
if flags == cv2.EVENT_FLAG_LBUTTON:
ori = cv2.line(ori, (x, y), (x, y), [int(color[0]),int(color[1]),int(color[2])], 10, cv2.LINE_AA)
cv2.imshow("ori", ori)
cv2.imshow("ori", ori)
cv2.setMouseCallback("ori", mouse_event)
cv2.waitKey(0)
if flags == cv2.EVENT_FLAG_LBUTTON:
ori = cv2.line(ori, (x, y), (x, y), [int(color[0]),int(color[1]),int(color[2])], 10, cv2.LINE_AA)
cv2.imshow("ori", ori)
이 코드에서 color값을 변수로 받아버리려 했지만 계속 되는 오류로 이런저런 방법 쓰다가
설마 color값이 문자열로 받아지는건가라는 생각이 딱 들었다.
생각이 들자마자 int로 변형 후 실행시키니 바로 정상 실행이 되었다..
색 추출도 가능해 졌으니 정말 그림판처럼 물통을 만들고 그림 그리기 프로그램을 만들 수 있다.
'Python' 카테고리의 다른 글
[Python/tesseract] 맥(Mac) tesseract 설치 (0) | 2024.03.06 |
---|---|
[Python/OpenCV] 도형 그리기 (0) | 2024.03.05 |