[英]using cvSetMouseCallback in javacv
我对编程还不陌生,我一直在使用javacv进行图像处理,但是在使用鼠标事件为iplimage查找坐标时遇到了麻烦。 我基本上想使用鼠标左键获取iplimage的(x,y)坐标。 如果有人可以给我一个有关如何使用此功能的基本示例,我将不胜感激。 我在网上看了看,发现的所有东西都很混乱。 我知道参数是cvSetMouseCallback(“ string”,on_mouse,null),但是我不知道on_mouse是什么。
因此,使用此方法的代码片段为:
cvNamedWindow("LKpyr_OpticalFlow", CV_WINDOW_AUTOSIZE);
cvShowImage("LKpyr_OpticalFlow", imgC);
CvMouseCallback on_mouse = new CvMouseCallback() {
@Override
public void call(int event, int x, int y, int flags, com.googlecode.javacpp.Pointer param) {
System.out.println("point = (" + x + ", " + y + ")");
}
};
cvSetMouseCallback("LKpyr_OpticalFlow", on_mouse, null);
cvWaitKey(0);
要回答on_mouse问题,它只是一个鼠标回调。 换句话说,发生鼠标事件时会发生什么? 在上面的代码中,已通过重写call方法实现了简短的CvMouseCallback。 在此代码中,x和y坐标显示为标准输出。 该代码可以在这里找到适合的原班CvMouseCallback。
那么,您怎么知道什么叫做回调? 这是在要调用的event参数中给出的。 区分的通常方法是对事件执行switch语句。 例如,左按钮对应于CV_EVENT_LBUTTONDOWN
。 因此,如果只希望打印左键,请确保偶数等于上述常数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.