【发布时间】:2014-06-23 20:15:04
【问题描述】:
我正在开发一个在夜景中检测车辆前灯的项目。我正在 MATLAB 上进行演示。我的问题是我需要找到感兴趣区域 (ROI) 以获得低计算要求。我的解决方案是计算每行的总强度,如果该行的强度低于阈值,则将其变黑。
[rows col] = size(img1);
sumValue=[];
sum1 = sum(sum(img1)/(rows*col));
for a=1:1:rows
sumValue = sum(img1(a,:))/col;
if (sumValue <sum1+40)
img1(a,:)=0;
end
end
结果如下:
现在我想将图像的明亮部分保存在数组或矩阵中,以便我可以删除小的明亮部分并只保留大部分。如果有人有任何想法,请给我一些建议。
【问题讨论】:
-
要么将要删除的行号存储在某处,并在循环结束后将其删除。或者使用逐行求和来删除要删除的行,并检测总和是否为零,然后使用这样的逻辑索引删除它们 -
img1(sum(img,2)==0,:)=[]; -
不是对您问题的回答,而是一个建议:您可以通过在不同的色彩空间中工作来降低投资回报率,该色彩空间重视车头灯的亮度。您可以尝试将它们与剩余图像分开。我会留给你来决定要选择什么颜色空间,并根据你的时间/动机将它合并到你当前的代码中。此外,您可以通过设置阈值来将此结果二值化。然后选择 ROI 并使用这些指标来形成您的 ROI。
标签: arrays matlab image-processing matrix computer-vision