int GlobalX = -1; //These two variables will hold new information
int GlobalY = -1;
void save(int event, int x, int y, int flags, void* firstImage)
{
if (event == CV_EVENT_LBUTTONDOWN)
{
printf("x = %d -- y = %d\n", x, y);
GlobalX = x;
GlobalY = y;
}
}
void main()
{
IplImage* secondImage = cvLoadImage("second.jpg");
IplImage* firstImage = cvCreateImage(cvSize(300, 300), secondImage->depth, 3);
cvNamedWindow("First");
cvNamedWindow("Second");
cvSetMouseCallback("Second",save,(void*)secondImage);
cvShowImage("Second",secondImage);
while(GlobalX == -1 && GlobalY == -1)
{
cvWaitKey(100);
}
CvRect pixel = cvRect(GlobalX, GlobalY, 300, 300);
cvSetImageROI(secondImage, pixel);
cvCopy(secondImage, firstImage);
cvShowImage("First", firstImage);
cvWaitKey(0);
cvReleaseImage(&firstImage);
cvReleaseImage(&secondImage);
}
「2番目のウィンドウ」をクリックして「最初のウィンドウ」に表示したときに画像をトリミングしたいのですが、最初のクリックで画像をトリミングして表示します。どのようにループしますか?