다음과 같은 제품의 검사를 진행 할 경우 영상처리에서 어떻게 처리 할 것인지에 대한 방법을 고민한다.
원형 제품의 검사방법은 영역 정보가 필요하므로 원형 검출을 해야한다. 이후, 무시할 영역과 검사가 필요한 영역을 구분해 내야하기 때문이다.
원의 넓이를 구할때 원을 수없이 Slice하는 것을 교육과정에서 경험하였다. 그 방법을 이용하여 원을 평면으로 변형 시킨다.
cv::Mat GetDistortion(const cv::Mat& matSrc, const cv::Point pntCenter, const double radius)
{
원주 구하기 (2 * pi * r)
새로 만들 이미지 생성 (원주, 반지름름)
각도를 원주로 나누어 점집합 간격 구하기 (2 * pi / 원주)
for i = 0; i < radius; i++
{
for j = 0; j < 원주; j++
{
// 회전 변환.
srcx = 중심x + i * cos (j * 점집합간격)
srcy = 중심y + i * sin (j * 점집합간격)
dstx = j;
dsty = i;
새로만들 이미지에 원본 이미지지 복사 (src -> dst)
}
}
}
원형 이미지를 평면으로 변환하므로써 얻는 장점
원형 이미지를 평면으로 변환하므로써 고려할 점