我的目标是在opencv和c ++中使用鼠标在图像中绘制一条线。我在网上查看了不同的代码,但我想在脑子里想出一些想法后自己尝试一下。我可能完全错了,但我只是一个初学者。所以,我想尝试但它仍然没有工作所以我想在这里发布它。如果可能,请纠正我的错误。
POINT p;
GetCursorPos(&p);
bool drawing;
int x;
int y;
int startx,starty;
int finishx,finishy;
int z;
int l;
Mat a;
a = imread("a.JPG");
if(GetKeyState(VK_LBUTTON) & 0x80 != 0)
{
drawing = true;
x = p.x;
y = p.y;
startx = x;//the starting position to start the drawing
starty = y;
}
if(GetKeyState(VK_RBUTTON) &0x80 != 0)
{
drawing = false;
z= p.x;
l = p.y;
finishx = z;
finishy = l;
}
if(drawing==true)
{
line(a,Point(startx,starty),Point(finishx,finishy),Scalar(0,0,255),1);
imshow("test image",a);
}
答案 0 :(得分:2)
您需要将您的线条图代码放在setMouseCallback()
指定的回调函数中。 OpenCV有一个demo of how to do the callback。另请参阅此问题的答案Drawing rectangle or line using mouse events in open cv using python(答案在C ++中)