728x90
728x90
Pixel, ํฝ์
ํ๋ ๋น 0~255 ์ซ์๋ก ๋ช
๋๋ฅผ ๋ํ๋
ํด์๋ 1920x1080 ๋ผ๋ ๊ฑด ๊ฐ๋ก 1920 ํฝ์
x ์ธ๋ก 1080 ํฝ์
์ ๋ปํจ
0~255๋ก๋ง ์ด๋ฏธ์ง๋ฅผ ๋ํ๋ด๋ฉด Grayscale(ํ๋ฐฑ) ๋ฐ์ ์๋จ -> ํ ํฝ์
๋น 1 byte
์์์ ๋ํ๋ด๊ธฐ ์ํด ๊ฐ๊ฐ R, G, B ๋ง๋ค 0~255 ๊ฐ์ ๊ฐ์ง -> ํ ํฝ์
๋น 3 byte
(R + G + B) / 3 = ํ๋ฐฑ ๋ช
๋ ๊ฐ
์ด๋ฏธ์ง ํ์ผ ํฌ๋งท
.raw ํ์ผ - ์ฉ๋์ด ํฌ์ง๋ง ํฝ์ ๊ฐ์ด ํ๋๋ ๊นจ์ง์ง ์์ผ๋ฏ๋ก C/C++ ์์ ํ์ผ์ ๋ฐ๋ก ์ฝ์ด์ ์์ ์ ๊ทผํ ์ ์์
.bmp ํ์ผ - rawํ์ผ ๋ณด๋ค ์ฉ๋์ด ์์ ๋ ๋น ๋ฅธ ์ ์ก ๊ฐ๋ฅ. Windows์์ ์์ฃผ ์ฌ์ฉํ๋ฉฐ C++ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์
.jpg .gif .png ํ์ผ - ์ฉ๋์ด ์์ง๋ง ํ์ผ์ ๋ฐ๋ก ์ฝ์ ์ ์๊ณ ๋ณ๋์ Library๋ฅผ ์ด์ฉํด์ผ ํ๋ฏ๋ก ๋ค๋ฃจ๊ธฐ ์ด๋ ค์
BMP ํ์ผ ํฌ๋งท ํ์ธํด๋ณด๊ธฐ
ํฝ์ ์ ์ ๊ทผํ๋๋ฒ?
- MAT Class : openCV2 ์์ ์ฌ์ฉ, ์ด๋ฏธ์ง๋ฅผ ๋ด๋ Class, C++์์ ์ฌ์ฉ -> Mat์ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
- struct IpImage : openCV ์์ ์ฌ์ฉ, C์์ ์ฌ์ฉ
Mat ์ด๋ฏธ์ง ๊ฐ์ฒด ์์ฑ
Mat image;
Mat image(H, W, CV_8UC1);
Mat image(H, W, CV_8UC1, Scalar(255));
Mat image = imread("test.png");
*์ฐธ๊ณ * Mat ๊ฐ์ฒด ์ฌ์ ์ ๋ถ๊ฐ๋ฅ,
Mat image
- size 0, 0
Mat image(H, W, CV_8UC1);
- H, W : define num
- CV_8UC1 : 8bit Unsinged Char , Channel 1๊ฐ -> ๊ทธ๋ ์ด์คํจ
Mat image(H, W, CV_8UC1, Scalar(255));
- 255 - ๊ธฐ๋ณธ๊ฐ ์๋ 0์ธ๋ฐ ํฐ์๋ฐฐ๊ฒฝ์ผ๋ก ๋ง์ถฐ์ง
Mat image = imread("test.png");
- cpp ํ์ผ ์๋ ํด๋์ ์๋์์น\ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
์ด๋ฏธ์ง ์ฐธ์กฐ & ๋ณต์ฌ
Mat image = imread("test.png");
// ๋ ํผ๋ฐ์ค ์ฐธ์กฐ
Mat A = image;
// ์ด๋ฏธ์ง ๋ณต์ฌ
Mat B(image);
Mat C;
image.copyTo(C);
Mat D(image.rows, image.cols, CV_8UC3);
D = image.clone();
๊ทธ๋ ์ด or ์ปฌ๋ฌ ์ฑ๋ ์ค์
Mat image = imread("test.png", CV_LOAD_IMAGE_COLOR);
Mat image2 = imread("test.png", CV_LOAD_IMAGE_GRAYSCALE);
Mat image = imread("test.png");
- ์ฑ๋ 3๊ฐ, rgb๋ก ์์ ํํ
- CV_LOAD_IMAGE_COLOR = 1
- imread ํจ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ต ๊ฐ๋ฅ
Mat image2 = imread("test.png", CV_LOAD_IMAGE_GRAYSCALE);
- ์ฑ๋ 1๊ฐ, ํ๋ฐฑ ํํ
- CV_LOAD_IMAGE_GRAYSCALE = 0
- 2020.12.07 ํฝ์ ์ ๋ํ ๋ด์ฉ ์ถ๊ฐ
- ํ๋ฆฐ ์ ์ ์ง์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ~
728x90
728x90