我有一个问题,如下所示顶部是一个原始图像底部的标题是左侧90度。有没有办法来计算角度的变化。我试过霍夫变换,我可以检测到位置,但是我无法检测到变化的天使。是否有替代检测度数已更改。比较多少度倾斜的图像
回答
我使用对称纯相位匹配滤波器这样做过。它实际上是用于指纹识别,允许旋转和缩放。不幸的是,它非常复杂。您需要熟悉如何计算FFT和具有类似水平的数学运算。我没有用C#做,而是用MATLAB(和可综合的Verilog,但这完全是另一回事)。我建议首先使用MATLAB或类似的数学软件包来确保算法正确。
但愿有人已经在某个地方的.NET图像处理库中实现了这个算法。
我使用的论文如下。这是比算法更基于数学,所以它将需要一些工作,将其转换为代码:
陈勤生; Defrise,M .; Deconinck,F. "Symmetric phase-only matched filtering of Fourier-Mellin transforms for image registration and recognition," 模式分析与 机器智能,IEEE 交易上,第16卷,第12号, pp.1156-1168,1994年12月
摘要:呈现给 的新方法将2D图像与翻译的,经过旋转和缩放的参考图像进行匹配。该方法由两个步骤组成: 计算每个要匹配的 图像的傅里叶梅林 不变量(FMI)描述符,以及FMI描述符的匹配 。 FMI 描述符是平移不变的, 并且表示旋转和缩放作为 在参数空间中的翻译。 FMI描述符的匹配是 ,使用对称相位匹配滤波(SPOMF)实现。 FMI-SPOMF算法 的性能 与 处理图像转换时的相位匹配滤波的性能相同或相似。新的 技术的显着优点是其能够精确匹配 旋转和缩放的图像,并且高效地匹配 。其创新之处在于将SPOMF应用于FMI 描述符,这确保了在存在噪声的情况下的高判别能力和出色的 健壮性。 本文介绍了 的原理及其分立 的实现方式,用于图像 检测问题或图像 注册问题。实际 结果呈现用于医学成像的各种 应用, 遥感,指纹 识别和多目标 识别
也可以在通过恒定角度的循环旋转第二图像,并计算每个图像RMSE两者之间迭代。匹配角度将是RMSE最小的地方。
这里是powershell脚本,将实现该想法与ImageMagick:
# convert images to equal sizes for pixel by pixel comparision
convert.exe p1.png -resize 73x73! p1.png
convert.exe p2.png -resize 73x73! p2.png
# initialize variables
$min_rmse = 1.0
$degrees_rotated = -1.0
# rotate second image by 10 degrees in each iteration
# and after that measure RMSE between first image and second rotated image
for ($i=0; $i -le 350; $i+=10) {
convert.exe p2.png -rotate $i tmp.png
convert.exe tmp.png -resize 73x73! tmp.png
$rmse = compare.exe -metric rmse p1.png tmp.png diff.png 2>&1
$rmse = ([string] $rmse).split(" ")[1]
$rmse = $rmse.replace("(","")
$rmse = [double] $rmse.replace(")","")
# find rotation angle where RMSE is minimal
if ($rmse -lt $min_rmse) {
$min_rmse = $rmse
$degrees_rotated = $i
}
}
Write-Host "two images are most similar when second image is rotated by $degrees_rotated deg (rmse is $min_rmse)"
Write-Host "Press any key to exit ..."
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
希望有所帮助。
p.s. 根据wiki可以用两种不同的方式计算两个向量之间的RMSE。我不知道在ImageMagick中执行哪一个命令为
compare.exe -metric rmse命令,但可以肯定的是,可以通过询问IM开发人员或通过试错法来确定。
- 1. PictureBox倾斜图像
- 2. Html倾斜的图像?
- 3. 倾斜图像的一侧
- 4. 仅倾斜背景图像
- 5. 倾斜摄像头的地形坡度比例尺
- 6. 带CSS的倾斜图像框
- 7. 检测图像中的头部倾斜
- 8. OpenCV - 调整倾斜角度的照片(倾斜)
- 9. HTML5旋转方法倾斜图像
- 10. 响应排量倾斜图像
- 11. 旋转图像以向下倾斜
- 12. 在边界内倾斜移动图像
- 13. 试图将多个div倾斜到不同的随机角度
- 14. 视差分度倾斜
- 15. CSS:Google地图倾斜视图?
- 16. Graphviz:减少倾斜的多边形节点上的边距
- 17. 边框图像语法产生倾斜图像
- 18. 得到倾斜角度的Android
- 19. As3 - 转换像向后倾斜的图像
- 20. 比较从多个角度拍摄的数百张JPEG图像
- 21. 与iPad倾斜
- 22. Javascript比较图像
- 23. 比较图像matlab
- 24. iOS图像比较
- 25. 面向倾斜度函数的直方图的输入参数
- 26. 倾斜手机。加速度计错误
- 27. 倾斜iPhone更改UIImage(加速度计)
- 28. iPhone倾斜角度 - 使用陀螺仪?
- 29. 使用CMMotionManager测量倾斜角度
- 30. OpenCV:使用ORB比较多个图像
我该如何解决?我从未注意到这一点。 – user288231 2011-02-12 02:59:18
您需要通过勾选来选择最佳答案。 – 2011-02-12 08:18:49