我已经在https://dsp.stackexchange.com/上问了这个问题,但没有得到任何答案!希望在这里得到任何建议:
我有一个项目,我必须在不同的“位置”识别2条线,这些线是正交的,但可以投影在不同的表面上。我正在使用opencv。
交叉点可以在框架上的任何位置。线条为红色(图像仅显示灰度)。
更新
- 我将使用灰度相机!!!!!!!!!
- 投影线的背景和物体可以改变
我不是要求代码,但仅针对如何解决此问题的提示?我尝试了houghlines
功能,但它仅适用于直表面。
提前致谢 !
答案 0 :(得分:4)
这不是一项艰巨的任务,因为它包括直线。我做过类似的项目。
答案 1 :(得分:1)
我认为AMI的想法很好。
您也可以考虑使用控制激光光源。在这种情况下,您可以在激光打开的情况下获得图像对1,然后关闭一个图像,然后找到差异。
答案 2 :(得分:0)
这是减去中值滤波器输出的结果(r = 6):
你可以通过调整中值滤波器半径来改善一些事情,但是这些波浪状,不连续的线很难被可靠地检测到。
你真的需要更好的源图像。以下是一些建议:
彩色相机会有很大帮助。对红色和绿色通道应用高通滤波器,并计算两者之间的差异。红线比那更好。
你能让光源更亮吗?
您是否尝试在相机镜头上放置红色滤镜?理想情况下,你想要一个具有尽可能接近光源波长的通带 - 如果光来自激光,那么合适的dichroic filter应该会产生良好的效果。但即使是一块红色塑料也不会好。 (你有一副旧的红/蓝3D眼镜坐在某处吗?)
答案 3 :(得分:0)
从红色通道中减去灰度图像可能有助于突出显示红色。我发布此评论作为评论,但还不能这样做。