【发布时间】:2015-02-24 08:58:12
【问题描述】:
场景:
扫描一个谜题,让计算机解决它(Java 应用程序)。
我正在寻找一种方法来找到拼图的角。
我不知道我是否可以使用框架来解决这个问题。我可以在这里使用模板之类的东西来找到角落吗?还是我必须自己实现一个算法?
我需要将单件放在笔直的位置。如果我有两个角,我可以计算将图像旋转到直线水平所需的角度。 我在特定的框架中不需要这样的函数。
(可选) 我的方法是: 自己实现一个算法(可能性能极差)。
- 创建一个二维数组,其中所有白色像素分配为 0,所有彩色/黑色像素分配为 1。
- 循环遍历二维数组并搜索像素为 1 的像素。从这里开始,搜索所有相邻的 1。
- 如果相邻的 1 少于 50 个,则忽略此“像素”并继续(扫描错误)
- 如果相邻的 1 超过 50 个,则为拼图(且无扫描错误)。完成这幅作品并将它们全部复制到一个新的 2D 阵列中,其中不应出现扫描错误。
- 在新数组中,搜索角度...
【问题讨论】:
-
友情推荐——使用像OpenCV这样的图像处理库,而不是重新发明轮子
-
@Itay:谢谢,但这是我的问题的一部分。您认为使用 OpenCV 可以轻松解决这个问题吗?
-
是的,当然。解决方案本身取决于您的作品的特征(如果角正好是 90 度等)。可以看this article的第三章(3个识别面)
-
@Itay:谢谢! :) 我一有时间就读。
标签: opencv image-processing bufferedimage javacv imagej