gpt4 book ai didi

matlab - MATLAB hough 和我的实现之间的区别

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:21 25 4
gpt4 key购买 nike

我正在尝试用我的函数重新创建 MATLAB 的 hough 函数。我的代码如下

function [H,T,R] = my_hough(x,dr,dtheta)
rows = size(x,1);
cols = size(x,2);
D = sqrt((rows - 1)^2 + (cols - 1)^2);
Nr = 2*(ceil(D/dr)) + 1;
diagonal = dr*ceil(D/dr);
R = -diagonal:dr:diagonal;
T = -90:dtheta:90-dtheta;
Ntheta = length(T);
H = zeros(Nr,Ntheta);
for i = 1:Ntheta
for n1 = 1:rows
for n2 = 1:cols
if x(n1,n2)==1
r = n2*cos(T(i)*pi/180) + n1*sin(T(i)*pi/180);
[~,j] = min(abs(R-ones(1,Nr)*r));
H(j,i) = H(j,i) + 1;
end
end
end
end
end

其中 drdtheta 是距离和角度分辨率。打印我的 Hough 表和 MATLAB 之间的差异有很多零,但也有一些非零元素。知道为什么会这样吗?

最佳答案

嗯,实际上这是一个非常愚蠢的错误......

r = n2*cos(T(i)*pi/180) + n1*sin(T(i)*pi/180);

必须是

r = (n2-1)*cos(T(i)*pi/180) + (n1-1)*sin(T(i)*pi/180);

感谢这个奇怪的 MATLAB 索引。

关于matlab - MATLAB hough 和我的实现之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com