MATLAB解决方案在互联网上的其他地方都可以找到,但需要基于Python的开源解决方案。
创建带白色的空白图像的起始代码。
import cv2
import numpy as np
from skimage.transform import radon
from matplotlib import pyplot as plt
blank = np.zeros((100,100))
blank = cv2.line(blank, (25,25), (75,75), (255, 255, 255), thickness=1)
plt.imshow(blank, cmap='gray')
1条答案
按热度按时间bxjv4tth1#
使用python的
scikit-image
,使用radon
转换,行检测很容易正弦图包括一组不同Angular 的一维投影,正弦图的每一行包含一个投影。正弦图的最亮部分对应于原始图像中的白色区域。正弦图中的区域越亮,原始图像中的对象的共线性越大。我们假设正弦图的最大值的坐标与直线相关。我们使用
radon
变换并绘制正弦图。我们可以看到45度(水平轴)处最亮的点,并以行像素=50(垂直轴)为中心
找到每一行的RMS值,并找到最亮的旋转,在那里变换与线完美地对齐
它输出
同样你可以在垂直轴上找到像素值