๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
OpenCV ์ฃผ์ ์ฉ์ด (imread, imwrite ... ) ๋ณธ๋ฌธ
๐ฉ๐ป IoT (Embedded)/Image Processing
OpenCV ์ฃผ์ ์ฉ์ด (imread, imwrite ... )
์ง์ง์ํ์นด 2022. 10. 20. 14:49728x90
๋ฐ์ํ
221020 ์์ฑ
<๋ณธ ๋ธ๋ก๊ทธ๋ redorangeyellowy๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค>
[ch01] Python ์์ํ๊ธฐ - OpenCV ์ฃผ์ ํจ์ ์ค๋ช
OpenCV API ๋์๋ง ์ฐพ๊ธฐOpenCV ์ต์ ๋์๋ง : http://docs.opencv.org/master/OpenCV ๋์๋ง ์ฌ์ดํธ์์ ์ฐ์ธก ์๋จ ๊ฒ์์ฐฝ ํ์ฉ์์ ํ์ผ ๋ถ๋ฌ์ค๊ธฐfilename : ๋ถ๋ฌ์ฌ ์์ ํ์ผ ์ด๋ฆ (๋ฌธ์์ด)flags : ์์ ํ์ผ
velog.io
๐ค ์์ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
cv2.imread(filename, flags=None) -> retval
- filename : ๋ถ๋ฌ์ฌ ์์ ํ์ผ ์ด๋ฆ (๋ฌธ์์ด)
- flags : ์์ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ ์ต์
ํ๋๊ทธ
- cv2.IMREAD_COLOR
- BGR ์ปฌ๋ฌ ์์์ผ๋ก ์ฝ๊ธฐ (๊ธฐ๋ณธ๊ฐ)
- shape = (rows, cols, 3)
- cv2.IMREAD_GRAYSCALE
- ๊ทธ๋ ์ด์ค์ผ์ผ ์์์ผ๋ก ์ฝ๊ธฐ
- shape = (rows, cols)
- cv2.IMREAD_UNCHANGED
- ์์ ํ์ผ ์์ฑ ๊ทธ๋๋ก ์ฝ๊ธฐ
- e.g. ํฌ๋ช ํ PNG ํ์ผ
- shape = (rows, cols, 4)
- cv2.IMREAD_COLOR
- retval : ๋ถ๋ฌ์จ ์์ ๋ฐ์ดํฐ (numpy.ndarray)
๐ค ์์ ํ์ผ ์ ์ฅํ๊ธฐ
cv2.imwrite(filename, img, params=None) -> retval
- filename : ์ ์ฅํ ์์ ํ์ผ ์ด๋ฆ (๋ฌธ์์ด)
- img : ์ ์ฅํ ์์ ๋ฐ์ดํฐ (numpy.ndarray)
- params : ํ์ผ ์ ์ฅ ์ต์ ์ง์ (์์ฑ & ๊ฐ์ ์ ์ ์)
- e.g) [cv2.IMWRITE_JPEG_QUALITY, 90] : JPG ํ์ผ ์์ถ๋ฅ ์ 90% ๋ก ์ง์ -> ์์ถ๋ฅ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ
๐ค ์ ์ฐฝ ๋์ฐ๊ธฐ
cv2.namedWindow(winname, flags=None) -> None
- winname : ์ฐฝ ๊ณ ์ ์ด๋ฆ (๋ฌธ์์ด)
- flags: ์ฐฝ ์์ฑ ์ง์ ํ๋๊ทธ
- cv2.WINDOW_NORMAL : ์์ ํฌ๊ธฐ๋ฅผ ์ฐฝ ํฌ๊ธฐ์ ๋ง๊ฒ ์ง์
- cv2.WINDOW_AUTOSIZE : ์ฐฝ ํฌ๊ธฐ๋ฅผ ์์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ณ๊ฒฝ (๊ธฐ๋ณธ๊ฐ)
๐ค ์ฐฝ ๋ซ๊ธฐ
cv2.destroyWindow(winname) -> None
cv2.destroyAllWindows() -> None
- winname : ๋ซ๊ณ ์ ํ๋ ์ฐฝ ์ด๋ฆ
- ์ฐธ๊ณ ์ฌํญ
- cv2.destroyWindow() ํจ์๋ ์ง์ ํ ์ฐฝ ํ๋๋ง ๋ซ๊ณ , cv2.destroyAllWindows() ํจ์๋ ์ด๋ ค์๋ ๋ชจ๋ ์ฐฝ์ ๋ซ์
- ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ ์ข ๋ฃ ์ ์ด์ ์ฒด์ ์ ์ํด ์ด๋ ค ์๋ ๋ชจ๋ ์ฐฝ์ด ์๋์ผ๋ก ๋ซํ
๐ค ์ฐฝ ์์น ์ด๋
cv2.moveWindow(winname, x, y ) -> None
- winname : ์ฐฝ ์ด๋ฆ
- x, y : ์ด๋ํ ์์น ์ขํ
๐ค ์ฐฝ ํฌ๊ธฐ ๋ณ๊ฒฝ
cv2.resizeWindow(winname, width, height ) -> None
- winname: ์ฐฝ ์ด๋ฆ
- width: ๋ณ๊ฒฝํ ์ฐฝ์ ๊ฐ๋ก ํฌ๊ธฐ
- height: ๋ณ๊ฒฝํ ์ฐฝ์ ์ธ๋ก ํฌ๊ธฐ
- ์ฐธ๊ณ ์ฌํญ
- ์ฐฝ ์์ฑ ์ cv2.WINDOW_NORMAL ์์ฑ์ผ๋ก ์์ฑ๋์ด์ผ ๋์
- ์์ ์ถ๋ ฅ ๋ถ๋ถ์ ํฌ๊ธฐ๋ง์ ๊ณ ๋ คํจ (์ ๋ชฉ ํ์์ค , ์ฐฝ ๊ฒฝ๊ณ๋ ๊ณ ๋ ค๋์ง ์์)
๐ค ์์ ์ถ๋ ฅํ๊ธฐ
cv2.imshow(winname, mat) -> None
- winname : ์์์ ์ถ๋ ฅํ ๋์ ์ฐฝ ์ด๋ฆ
- mat : ์ถ๋ ฅํ ์์ ๋ฐ์ดํฐ (numpy.ndarray)
- ์ฐธ๊ณ ์ฌํญ
- uint16, int32 ์๋ฃํ ํ๋ ฌ์ ๊ฒฝ์ฐ, ํ๋ ฌ ์์ ๊ฐ์ 255๋ก ๋๋ ์ ์ถ๋ ฅ
- float32, float64 ์๋ฃํ ํ๋ ฌ์ ๊ฒฝ์ฐ, ํ๋ ฌ ์์ ๊ฐ์ 255๋ฅผ ๊ณฑํด์ ์ถ๋ ฅ
๐ค ํค๋ณด๋ ์ ๋ ฅ ๋๊ธฐ
cv2.waitKey(delay=None) -> retval
while True:
if cv2.waitKey() == ord ('q'): break
- delay : ๋ฐ๋ฆฌ์ด ๋จ์ ๋๊ธฐ ์๊ฐ. delay ≤ 0 ์ด๋ฉด ๋ฌดํํ ๊ธฐ๋ค๋ฆผ. ๊ธฐ๋ณธ๊ฐ์ 0.
- retval : ๋๋ฆฐ ํค ๊ฐ (ASCII code). ํค๊ฐ ๋๋ฆฌ์ง ์์ผ๋ฉด -1.
- ์ฐธ๊ณ ์ฌํญ
- cv2.waitKey() ํจ์๋ OpenCV ์ฐฝ์ด ํ๋๋ผ๋ ์์ ๋ ๋์ํจ
- ํน์ ํค ์ ๋ ฅ์ ํ์ธํ๋ ค๋ฉด ord () ํจ์๋ฅผ ์ด์ฉ
- ์ฃผ์ ํน์ํค ์ฝ๋ : 27(ESC), 13(ENTER), 9(TAB)
728x90
๋ฐ์ํ
'๐ฉโ๐ป IoT (Embedded) > Image Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
OpenCV๋ก ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋์ผ ๋ง๋ค๊ธฐ (0) | 2022.10.20 |
---|---|
OpenCV ์ Matplotlib ์ฌ์ฉํด์ ์ด๋ฏธ์ง ์ถ๋ ฅํ๊ธฐ (0) | 2022.10.20 |
OpenCV ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ (0) | 2022.10.20 |
OpenCV ์์ ๊ตฌ์กฐ์ ํํ (0) | 2022.10.20 |
OpenCV์ ์ปดํจํฐ ๋น์ & ์์์ฒ๋ฆฌ (0) | 2022.10.20 |
Comments