๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
OpenCV์ ์ ์ฉํ๋ ๋ง์คํฌ ์ฐ์ฐ๊ณผ ROI ๋ณธ๋ฌธ
๐ฉ๐ป IoT (Embedded)/Image Processing
OpenCV์ ์ ์ฉํ๋ ๋ง์คํฌ ์ฐ์ฐ๊ณผ ROI
์ง์ง์ํ์นด 2022. 10. 20. 16:21728x90
๋ฐ์ํ
221020 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ redorangeyellowy๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค>
[ch02] Python ๊ธฐ์ด ์ฌ์ฉ๋ฒ - ๋ง์คํฌ ์ฐ์ฐ๊ณผ ROI
Region of interst : ๊ด์ฌ ์์ญ์์์์ ํน์ ์ฐ์ฐ์ ์ํํ๊ณ ์ ํ๋ ์์์ ๋ถ๋ถ ์์ญOpenCV๋ ์ผ๋ถ ํจ์์ ๋ํด ROI ์ฐ์ฐ์ ์ง์ํ๋ฉฐ, ์ด ๋ ๋ง์คํฌ ์์์ ์ธ์๋ก ํจ๊ป ์ ๋ฌํด์ผํจ.ex. cv2.copy(), cv2.calc
velog.io
๐ต ROI
- Region of interst : ๊ด์ฌ ์์ญ
- ์์์์ ํน์ ์ฐ์ฐ์ ์ํํ๊ณ ์ ํ๋ ์์์ ๋ถ๋ถ ์์ญ
๐ต ๋ง์คํฌ ์ฐ์ฐ
- OpenCV๋ ์ผ๋ถ ํจ์์ ๋ํด ROI ์ฐ์ฐ์ ์ง์ํ๋ฉฐ, ์ด ๋ ๋ง์คํฌ ์์์ ์ธ์๋ก ํจ๊ป ์ ๋ฌํด์ผํจ.
- ex. cv2.copy(), cv2.calcHist(), cv2.bitwise_or(), cv2.matchTemplate(), ...
- ๋ง์คํฌ ์์์ cv2.CV_8UC1 ํ์ (๊ทธ๋ ์ด์ค ์ผ์ผ ์์)
- ๋ง์คํฌ ์์์ ํฝ์
๊ฐ์ด 0์ด ์๋ ์์น์์๋ง ์ฐ์ฐ์ด ์ํ๋จ
- ๋ณดํต ๋ง์คํฌ ์์์ผ๋ก๋ 0 ๋๋ 255๋ก ๊ตฌ์ฑ๋ ์ด์ง ์์(binary image)์ ์ฌ์ฉ
๐ต ๋ง์คํฌ ์ฐ์ฐ์ ์ง์ํ๋ ํฝ์ ๊ฐ ๋ณต์ฌ ํจ์
cv2.copyTo(src, mask, dst=None) -> dst
- src : ์ ๋ ฅ ์์
- mask : ๋ง์คํฌ ์์. cv2.CV_8U.(numpy.uint8). 0์ด ์๋ ํฝ์ ์ ๋ํด์๋ง ๋ณต์ฌ ์ฐ์ฐ์ ์ํ
- dst : ์ถ๋ ฅ ์์. ๋ง์ฝ src์ ํฌ๊ธฐ ๋ฐ ํ์
์ด ๊ฐ์ dst๋ฅผ ์
๋ ฅ์ผ๋ก ์ง์ ํ๋ฉด dst๋ฅผ ์๋ก ์์ฑํ์ง ์๊ณ ์ฐ์ฐ์ ์ํ. ๊ทธ๋ ์ง ์์ผ๋ฉด dst๋ฅผ ์๋ก ์์ฑํ์ฌ ์ฐ์ฐ์ ์ํํ ํ ๋ฐํ
- src, mask, dst๋ ๋ชจ๋ ํฌ๊ธฐ๊ฐ ๊ฐ์์ผ ํ๋ค
- src์ dst๋ ๊ฐ์ ํ์ ์ด์ด์ผ ํ๊ณ , mask๋ ๊ทธ๋ ์ด์ค์ผ์ผ ํ์ ์ ์ด์ง ์์
import matplotlib.pyplot as plt
import cv2
src = cv2.imread('sea.jpg', cv2.IMREAD_COLOR)
logo = cv2.imread('whale.png', cv2.IMREAD_UNCHANGED)
mask = logo[:, :, 3] # mask๋ ์ํ ์ฑ๋๋ก ๋ง๋ ๋ง์คํฌ ์์
logo = logo[:, :, :-1] # logo๋ b, g, r 3์ฑ๋๋ก ๊ตฌ์ฑ๋ ์ปฌ๋ฌ ์์
h, w = mask.shape[:2]
crop = src[10:10+h, 10:10+w] # logo, mask์ ๊ฐ์ ํฌ๊ธฐ์ ๋ถ๋ถ ์์ ์ถ์ถ
dst = cv2.copyTo(logo, mask, crop)
# plt.subplot(311), plt.axis('off'), plt.imshow(logo)
# plt.subplot(312), plt.axis('off'), plt.imshow(mask)
# plt.subplot(313), plt.axis('off'), plt.imshow(crop)
cv2.imshow('image', dst)
cv2.waitKey()
# ์์ฑ๋ ๋ชจ๋ ์ฐฝ์ ๋ซ์
cv2.destroyAllWindows()
728x90
๋ฐ์ํ
'๐ฉโ๐ป IoT (Embedded) > Image Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments