gpt4 book ai didi

opencv - OpenCv-深度图

转载 作者:行者123 更新时间:2023-12-02 16:39:51 24 4
gpt4 key购买 nike

你好Stackoverflowers,

我目前的工作包括查找金属坯(原木)是由一两个零件组成。我的第一步是寻找一条黑色竖线,表示两条圆木之间的间隔。如果我找不到分隔线,我认为这是一件。



该程序一直无懈可击,直到......深色的方坯出现...

所以我决定使用另一个我知道永远是真实的参数,深度。坯料和缝隙之间的深度总是不同的。

所以我专门尝试将两个摄像头彼此平行安装,有没有人知道如何正确设置此摄像头?

还是有人知道完成我任务的另一种方式?

提前致谢!

最佳答案

将最适合IMO:
使用便宜的激光线(在工具/五金店大约需要20美元),然后在图像中搜索激光。它的线条遍及整个坯料,是一件。如果生产线中断或严重变形,则有2条钢坯。

我的点子:

glm::vec3 laserColor(1,0,0); //red
glm::vec3 currentColor;
float maximum_color_distance = 0.1;
for(int a = 0; a < image.rows;a++)
{
for(int b = 0; b < image.rows;b++)
{
currentColor = image.at(a,b);
float current_distance = glm::distance(laserColor, currentColor);
if(current_distance > maximum_color_distance)
{
image.at(a,b) = 0;
}
}
}

glm::vec2 leftPixel = getMostLeftLaserPixel(image);
glm::vec2 rightPixel = getMostRightLaserPixel(image);

Line line = calculateLine (leftPixel,rightPixel);

line.hasHoles(image, laserColor); //checks for 3x3 pxiel blocks which are on the line, returns false if all pixels in a 3x3 block have an other color then the laser. 3x3 to take small erros to serious

如果钢坯足够远,也许可以在适当的距离内使用kinect。立体声图像在对极线上使用大多数时间块匹配。这意味着需要3x3像素,从左到右,然后尝试查找看起来相似的3x3像素。通过使用金属,这可能是一个问题。首先,您有重复的模式。其次,您有反射,这在每个摄像机上都会有所不同,因为它们的视角略有不同。

kinect的金属反射率也可能有相同的问题,但重复图案却没有:

“这取决于用于制造物体的 Material 。如果物体是由金属,玻璃或有光泽的物体制成,深度相机将难以准确地捕获图像。”

OpenCV提供了rectifyStereoIamge(或类似的东西)功能,当您使用两台摄像机时,该功能很有帮助。

关于opencv - OpenCv-深度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991177/

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