영상처리

<C++> OpenCV 원 그리기

park__ 2022. 3. 29. 13:19

이전 글 이어서 진행

	// pImgBuffer 이 전에 선언한 uchar (검정화면에 네모 상자가 그려져 있음)
    
	int iCx, int iCy, int iRadius, int iTargetVal;
	int iRadius = 300; // 반지름
	int iCx, iCy;
	iCx = iImgWidth / 2;
	iCy = iImgHeight / 2; // 원 중심점의 위치 (iCx, iCy)
	// 센터 (640, 480)에 반지름이 300인 원을 회색으로 그려줌
    
	for (int y = iCy - iRadius; y <= iCy + iRadius; y++)
	{
		for (int x = iCx - iRadius; x <= iCx + iRadius; x++)
		{
			if (((x - iCx) * (x - iCx) + (y - iCy) * (y - iCy)) <= (iRadius  * iRadius))
			{
				pImgBuffer[x + y * MatGray.cols] = iTargetVal;
			}
		}
	}
	imshow("OpenCV", MatGray);

출력 결과