영상처리
<C++> OpenCV에서 빈 공간 할당 후 그림 그리기 (사각형)
park__
2022. 3. 29. 13:02
int iImgWidth, iImgHeight;
iImgWidth = 1280;
iImgHeight = 960;
Mat MatGray(iImgHeight, iImgWidth, CV_8UC1, Scalar(0));
1280 x 960 에 CV_8UC1 = 8bit 를 할당 함 Color = 0
참고 사항
- OpenCV에서 선언할 때는 세로, 가로 순으로 설정 해야 함. ( 960 , 1280 )
- CV_8UC1 는 8bit 를 의미하고 흑백이다. 컬러를 나타낼 때는 CV_8UC3으로 해주고 Color 부분을 넣을 때 Scalar(0,0,0) 처럼 해주면 됨.
uchar *pImgBuffer = MatGray.data; // uchar 형식으로 Mat 받는 방법
int start_x, start_y, height, width, color;
start_x = 100;
start_y = 200; // x, y 시작 지점 (100, 200)
height = 200;
width = 300; // 그리고 싶은 사각형의 크기 (300, 200)
color = 128 // 색깔 128은 회색
for (int y = start_y; y < start_y + height; y++)
{
for (int x = start_x; x < start_x + width; x++)
{
pImgBuffer[x + y * MatGray.cols] = color;
}
}
imshow("OpenCV", MatGray); //출력