这几天将霍夫变换中对直线检测的代码实现的下发现个问题,及0~180不能将直线检测全。采用的是直线检测的第二种方法(忘了的话看看以前的写的博客)。对ρ = x cos(θ) + y sin(θ),根据取坐标系的如 matlab自上而下,一般C,C++读取自下而上必然有一定区域的盲区。如C/C++则对于θ取-90~0之间的区域是无法检测的,其中网上<visual c++数字图像处理典型算法及实>对ρ取绝对值,并不能消除该盲区,知识检测出θ=θ+90°的平行线,但实际上此平行线并非图上所以。
解决方法增加该区域的检测,将检测的区域扩张为-90~180,此方法虽然笨一些,但可以实际检测出所以区域的直线。