- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法在 vc++ windows 窗体应用程序中执行 opencv 鼠标处理。我收到以下错误
错误 29 error C3867: 'touch_gui_trial1::Form1::mouseHandler': 函数调用缺少参数列表;使用 '&touch_gui_trial1::Form1::mouseHandler' 创建指向成员 c:\users\mridul\documents\visual studio 2010\projects\touch_gui_trial1\Form1.h 104 1 touch_gui_trial1
代码片段如下
public ref class Form1 : public System::Windows::Forms::Form
{
public:
int i,cntr2,count,camno,cntr,ch,prev,flag_camno,hand_thresh_area;
static int handthresharea=0,flagroi=0,drag;
static Point sz,point;
void mouseHandler(int event, int x, int y, int flags, void* param)
{
IplImage* img0;
img0=(IplImage *)param;
/* user press left button */
if (event == CV_EVENT_LBUTTONDOWN && !drag)
{
point = Point(x, y);
drag = 1;
}
/* user drag the mouse */
if (event == CV_EVENT_MOUSEMOVE && drag)
{
img1 = cvCloneImage (img0);
cvRectangle(
img1,
point,
cvPoint(x, y),
CV_RGB(255, 0, 0),
1, 8, 0
);
cvShowImage("Image taken", img1);
}
/* user release left button */
if (event == CV_EVENT_LBUTTONUP && drag)
{
img1 = cvCloneImage(img0);
cvSetImageROI(img1,cvRect(point.x,point.y,x - point.x,y - point.y));
sz.x=x - point.x;
sz.y=y - point.y;
//cvNot(img1, img1); // or do whatever with the ROI
//cvResetImageROI(img1);
cvNamedWindow("the roi",1); cvShowImage("the roi", img1);
flagroi=1;
drag = 0;
}
/* user click right button: reset all */
if (event == CV_EVENT_RBUTTONUP)
{
//cvShowImage("Image taken", img0);
drag = 0;
}
}
int select_roi()
{
CvCapture *frame;
IplImage* img0;
IplImage* img1;
frame=cvCaptureFromCAM(0);
cvNamedWindow( "ROI Selection", CV_WINDOW_AUTOSIZE );
if ( !frame )
{
fprintf( stderr, "ERROR: capture is NULL \n" );
getchar();
return -1;
}
img0= cvQueryFrame(frame);
cvShowImage("ROI Selection", img0);
cvSetMouseCallback("ROI Selection", ::mouseHandler, img0);
**//error is in the above line**
return 0;
}
//rest 是调用 select roi 的 GUI 部分。
最佳答案
您的代码有 2 个问题:
您似乎有 2 个具有完全相同签名的 mouseHandler()
方法;
将方法用作回调时,您需要确保它们是静态
方法:
static void mouseHandler(int event, int x, int y, int flags, void* param) { ... }
并且当您将回调指定给 cvSetMouseCallback()
时,您应该这样做:
cvSetMouseCallback("ROI Selection", &Form1::mouseHandler, img0);
关于.net - Windows 窗体应用程序 vc++ 上的 opencv 鼠标处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104875/
对于一个科学实验,我写了一个turtle.py ,它会打开一个 800x480 的窗口并绘制一个缓慢增长的黑点。 turtle.py以 C:\Users\kaza>python C:\Users\ka
我开发了一个 swing 应用程序,但每次运行应用程序时都会打开一个新窗口。我希望如果一个窗口已经打开,则其他窗口不允许打开。 最佳答案 Here是一个 Java 单一应用实例的例子: A singl
有没有办法检测主进程中 Electron 的结构? process.platform 似乎也在 x64 机器上返回 win32,我没有在文档中找到任何获取架构的选项。 最佳答案 你试过 process
public short[] HanningWindow(short[] signal_in ,int pos ,int size) { for (int i= pos; i < pos+si
我有一个具有这些属性的 Electron 窗口: mainWindow = new BrowserWindow({ width: 800, height: 600, title: "Aqu
我有一个 Ubuntu 工作站,我正在尝试引导一个 Windows 节点。 Windows 节点在端口 2222 上打开了 ssh。我一直在关注 http://docs.opscode.com/plu
我是一名优秀的程序员,十分优秀!