Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用OpenCV将实际相机图像转换为原始图像?_Java_Opencv_Transformation - Fatal编程技术网

Java 如何使用OpenCV将实际相机图像转换为原始图像?

Java 如何使用OpenCV将实际相机图像转换为原始图像?,java,opencv,transformation,Java,Opencv,Transformation,这是我创建的原始焊盘图像 以及从相机上实际拍摄的图像 我正在寻找一种高精度的方法,将捕获的图像转换回原始图像的形状,与白色和灰绿色区域的位置有关。我尝试了带有特征检测的OpenCV,但它无法检测到两幅图像之间的任何相似特征(两幅图像的关键点集也完全不同)。任何建议或示例代码在java或C++中都会被理解。谢谢。既然您知道原始对象,也许您可以检测矩形的角点,然后在它们之间找到单应性,然后您就可以扭曲它们了。这里有一个关于它的链接。您可以先尝试手动选择点,看看它是如何工作的,如果您喜欢,然后尝试

这是我创建的原始焊盘图像

以及从相机上实际拍摄的图像


我正在寻找一种高精度的方法,将捕获的图像转换回原始图像的形状,与白色和灰绿色区域的位置有关。我尝试了带有特征检测的OpenCV,但它无法检测到两幅图像之间的任何相似特征(两幅图像的关键点集也完全不同)。任何建议或示例代码在java或C++中都会被理解。谢谢。

既然您知道原始对象,也许您可以检测矩形的角点,然后在它们之间找到单应性,然后您就可以扭曲它们了。这里有一个关于它的链接。您可以先尝试手动选择点,看看它是如何工作的,如果您喜欢,然后尝试查找边和角点。我也尝试了单应。然而,在Java中使用SIFT或SURF特性检测器是不可能的(或者它们在我的库中不可用)。我试过ORB,但它找不到任何类似的点。你发送的教程非常棒:)在这样一个同质的区域中很难获得好的功能。。。我的意思是,不可能区分边上的哪个点是哪个点。我会使用一种使用颜色阈值的方法,然后得到区域的边缘并找到这些边缘的交点。对于对应关系,需要更多的分析或蛮力