반응형
In [ ]:
import cv2
import numpy as np
width, height = 512, 512
x, y, R = 256, 256, 50
left, right, down, up = 2,0,1,3
direction = down
# 윈도우 기준 방향키 전환, 맥 적용 안됨.
while True :
key = cv2.waitKeyEx(1000)
if key == 0x1B : break
elif key == 0x270000 : direction = 0 # right
elif key == 0x260000 : direction = 1 # down
elif key == 0x250000 : direction = 2 # left
elif key == 0x280000 : direction = 3 # up
if direction == 0 : x+=5
elif direction == 1 : y-=5
elif direction == 2 : x-=5
elif direction == 3 : y+=5
if x < R : direction = 0
if x > width - R : direction = 2
if y < R : direction = 1
if y > height - R : direction = 3
img = np.zeros(shape=(width, height, 3), dtype=np.uint8) + 255
cv2.circle(img,(x,y),R,(0,0,255),-1)
cv2.imshow('img',img)
cv2.destroyAllWindows()
In [ ]:
import cv2
import numpy as np
def on_mouse(event, x, y, flags, param) :
if event == cv2.EVENT_LBUTTONDOWN :
if flags & cv2.EVENT_FLAG_SHIFTKEY :
cv2.rectangle(img, (x-5, y-5), (x+5, y+5), (0,255,0))
else :
cv2.circle(img,(x, y), 10, (255,0,0),3)
elif event == cv2.EVENT_RBUTTONDOWN:
cv2.circle(param[0], (x, y), 10, (0,0,255),3)
cv2.imshow('img', param[0])
img = np.zeros((512, 512, 3), np.uint8) + 255
cv2.imshow('img', img)
cv2.setMouseCallback('img', on_mouse, [img])
cv2.waitKey()
cv2.destroyAllWindows()
트랙바 이벤트 처리¶
cv2.CreateTrackbar
원하는 RGB값 화면 시각화
In [ ]:
import cv2
import numpy as np
def on_change(pos) :
global img
r = cv2.getTrackbarPos('R', 'img')
g = cv2.getTrackbarPos('G', 'img')
b = cv2.getTrackbarPos('B', 'img')
img[:] = (b,g,r)
cv2.imshow('img', img)
img = np.zeros((512, 512, 3), np.uint8)
cv2.imshow('img', img)
cv2.createTrackbar('R', 'img', 0,255,on_change)
cv2.createTrackbar('G', 'img', 0,255,on_change)
cv2.createTrackbar('B', 'img', 0,255,on_change)
cv2.setTrackbarPos('R', 'img', 0)
cv2.setTrackbarPos('G', 'img', 0)
cv2.setTrackbarPos('B', 'img', 0)
cv2.waitKey()
cv2.destroyAllWindows()
트랙바 이미지 처리 2¶
투명도 조절
In [3]:
import cv2
import numpy as np
images1 = "./image/lena.jpg"
images2 = "./image/baboon.jpg"
img1 = 0
img2 = 0
img3 = 0
def on_change(pos) :
n = cv2.getTrackbarPos('alpha', 'image')
print('n=', n)
alpha = n/100
print('alpha=', alpha)
img3 = np.uint8((alpha*img2 + (1-alpha) * img1))
cv2.imshow('img', img3)
img1 = cv2.imread(images1)
img2 = cv2.imread(images2)
img3 = img1.copy()
cv2.imshow('image', img3)
cv2.createTrackbar('alpha', 'image', 0,100, on_change)
cv2.setTrackbarPos('alpha', 'image', 0)
cv2.waitKey()
cv2.destroyAllWindows()
반응형
'Python' 카테고리의 다른 글
[Python] openCV : normalization (0) | 2022.11.10 |
---|---|
[Python] openCV : image access (0) | 2022.11.10 |
[Python] openCV : Text (0) | 2022.11.10 |
[Python] openCV : Writer (0) | 2022.11.10 |
[Python] openCV : Image display (0) | 2022.11.10 |