图像处理:对象的旋转对齐

use*_*037 7 matlab image-processing octave imagej

我有一堆图像,靠近中心的酒吧.随着堆叠的进行,杆围绕一端枢转,并且整个堆叠包含图像,其中杆以许多不同的角度旋转,高达或低于水平45度.

如下图所示:

在此输入图像描述

我正在寻找一种方法来旋转条形和/或整个图像,并在我进行其他处理之前水平对齐所有内容.理想情况下,这将在Matlab/imageJ/ImageMagick中完成.我正在尝试使用第一个Canny边缘检测,然后是Hough变换,然后是图像旋转来计算方法,但我希望这是一个已经解决的更普遍问题的特定情况.

car*_*aug 0

使用ImageJ的StackReg插件。我不是 100% 确定,但我认为它已经随FIJI 一起安装了(FIJI 只是 ImageJ)

编辑:我想我误读了你的问题。这不是您要修复的一堆图像,对吗?在这种情况下,一个简单的方法(可能不是最有效的,但绝对有效)是以下算法:

  1. 阈值图像(看起来很简单,你的背景总是白色的)
  2. 获取一条长水平线作为结构元素并用它扩大图像
  3. 旋转结构元素并保持图像膨胀,测量膨胀的大小。
  4. 最大化它的角度是修复图像所需的旋转角度。