테두리 검출 법의 Roberts 연산 자

원 리 는 스스로 찾 습 니 다. 코드 는 다음 과 같 습 니 다.
IplImage* img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\159.jpg", 0);
IplImage* img1 = cvCreateImage(cvGetSize(img), img->depth, img->nChannels);
//LPBYTE  LpDate;

cvNamedWindow("Example", CV_WINDOW_AUTOSIZE);
cvShowImage("Example", img);


//CvScalar pixel0, pixel1, pixel2, pixel3, pixel;
for (int j = 0; j < img->height - 1; j++)
{
for (int i = 0; i < img->width - 1; i++)
{
//    RGB     
double pixel0 = cvGetReal2D(img, j, i);
double pixel1 = cvGetReal2D(img, j, i + 1);
double pixel2 = cvGetReal2D(img, j + 1, i);
double pixel3 = cvGetReal2D(img, j + 1, i+1);

double pixel = sqrt((pixel0 - pixel3)*(pixel0 - pixel3) + (pixel1 - pixel2)*(pixel1 - pixel2));
int pix = (int)pixel;
cvSetReal2D(img1, j, i, pix);
}
}

cvNamedWindow("White", CV_WINDOW_AUTOSIZE);
cvShowImage("White", img1);
cvSaveImage("C:\\Users\\Administrator\\Desktop\\color1.jpg", img1);

while (1)
{
if (cvWaitKey(100) == 27) break;
}
cvDestroyWindow("Example");
cvDestroyWindow("White");
cvReleaseImage(&img);
cvReleaseImage(&img1);

exit(0);

좋은 웹페이지 즐겨찾기