我有一堆图像,靠近中心的酒吧。随着堆叠的进行,杆围绕一端枢转,整个堆叠包含图像,杆以不同的角度旋转,最高可达水平上方或下方45度。
如下所示:
我正在寻找一种方法来旋转条形和/或整个图像,并在进行其他处理之前水平对齐所有内容。理想情况下,这将在Matlab / imageJ / ImageMagick中完成。我目前正在尝试使用第一个Canny边缘检测,然后是Hough变换,然后是图像旋转来计算方法,但我希望这是一个已经解决的更普遍问题的特定情况。 / p>
答案 0 :(得分:1)
如果您有图像处理工具箱,则可以使用具有'Orientation'属性的regionprops来查找角度。
http://www.mathworks.com/help/images/ref/regionprops.html#bqkf8ji
答案 1 :(得分:1)
您正在解决的问题称为图像配准或图像对齐。
- 你需要做的第一件事就是对图像进行阈值处理,这样你最终得到的是黑白图像。这将简化流程。
- 然后你需要计算imga的质心,然后翻译它们以匹配彼此的中心。
- 在主轴转换后,您可以尝试在每个方向上稍微旋转图像,以尝试优化旋转。
在翻译和旋转过程中,您需要一个衡量标准来向您展示您的变形是否合适。这个措施可以是很多东西。如果图片是黑白的,那么简单的图片减法就足够了。否则,您可以使用互信息等措施。
答案 2 :(得分:1)
答案 3 :(得分:0)
使用ImageJ的StackReg插件。我不是100%肯定,但我认为它已经安装了FIJI (FIJI Is Just ImageJ)。
编辑:我想我误解了你的问题。那不是你试图解决的一堆图像,对吗?在这种情况下,一种简单的方法(可能不是最有效但最终有效),是以下算法:
答案 4 :(得分:0)
如其他答案所示,有几种解决此问题的方法。一种可能类似于您已经尝试过的方法是使用Hough变换。霍夫变换擅长检测线方向。在检测到角度后,将其与形态处理和图像旋转相结合,您可以创建一个校正角度变化的系统。基本步骤是
此方法附带计算机视觉系统工具箱的完整示例。看到 http://www.mathworks.com/help/vision/examples/rotation-correction-1.html
答案 5 :(得分:0)
你可以尝试给予家庭或家庭变换,我更喜欢给予。 它需要一个角度,使用cos(角度)和sin(角度)来制作给定矩阵。