// 鼠标事件处理.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" void Mouse_on(int event, int x, int y, int flags, void *param)//param可以是任意参数 { IplImage *img = (IplImage*)param; switch (event) { case CV_EVENT_MOUSEMOVE://鼠标移动 if (flags&CV_EVENT_FLAG_CTRLKEY)//鼠标移动并且Ctrl键被按下 { CV_IMAGE_ELEM(img, uchar, y, x * 3 + 0) = 0; CV_IMAGE_ELEM(img, uchar, y, x * 3 + 1) = 0; CV_IMAGE_ELEM(img, uchar, y, x * 3 + 2) = 0; } default: break; } } int main() { IplImage *img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\PlantsVsZombies_1\\img\\model\\sun.png"); cvNamedWindow("123", 0); cvSetMouseCallback("123", Mouse_on, img);//回调函数:将123窗口与Mouse_on鼠标事件函数关联起来 for (;;) { cvShowImage("123", img); cvWaitKey(333); } return 0; }