OpenCV-在窗口中拖动图像块
我正在尝试在OpenCV中制作一个拼图游戏。我正在做的是,我正在把一个图像转换成小正方形,它们是相等维度的图像。例如,如果我有一个x B大小的图像,那么我将其重新调整为640 x 640,并将此重新调整大小的图像分割为每个大小为64 x 64的正方形。我将这些方形图像保存在本地磁盘上OpenCV-在窗口中拖动图像块,opencv,Opencv,我正在尝试在OpenCV中制作一个拼图游戏。我正在做的是,我正在把一个图像转换成小正方形,它们是相等维度的图像。例如,如果我有一个x B大小的图像,那么我将其重新调整为640 x 640,并将此重新调整大小的图像分割为每个大小为64 x 64的正方形。我将这些方形图像保存在本地磁盘上 现在我想知道是否有可能将这些方形图像随机放置在一个窗口中,并拖动这些图像以匹配最终的获胜状态?我找不到实现拖放的方法。如果我能得到一些提示,那就太好了。我懒得写你的程序,但这里有一些你可能喜欢的部分: 鼠标: vo
现在我想知道是否有可能将这些方形图像随机放置在一个窗口中,并拖动这些图像以匹配最终的获胜状态?我找不到实现拖放的方法。如果我能得到一些提示,那就太好了。我懒得写你的程序,但这里有一些你可能喜欢的部分: 鼠标:
void onmouse(int event, int x, int y, int mousestate, void *userptr)
{
if (event==1) // lmousebuttondown, do something with x, y
}
namedWindow("win");
setMouseCallback( "win", onmouse );
然后,将一个小图像(您拖动的对象)绘制到大图像:
Rect r(x,y,small.cols, small.rows);
big(r) = small;
OpenCV不能在同一窗口上显示多个图像(本机)。但是,您可以编写一段代码,然后将其显示在窗口上 这种方法的缺点是,您必须存储一个数组,其中包含这些图像的放置位置信息(从地理位置上讲),因此当用户单击屏幕中间时,您可以准确地知道哪个图像位于该位置。但是在编写拖放动画时,您也会遇到一些主要的难题,因为OpenCV提供的功能无法做到这一点 有一些演示展示了如何处理OpenCV上的鼠标点击: