如何使用MATLAB找到图像背景颜色的变化?

时间:2012-02-17 06:35:39

标签: matlab image-processing computer-vision

我有一个视频,上半部分背景为白色,下半部分背景为灰色。随着视频的进行,有烟雾,背景的可见度降低。有一个相机抖动,因此黑色背景变为白色的点不断变化(向上和向下移动)。我的目标是通过跟踪黑色背景变为灰色的垂直位置来量化每帧中的相机抖动。

我想跟踪背景从黑色变为灰色的垂直坐标(Y)。在这方面,我有以下问题,

1)如何识别颜色的变化?有什么方法可以在MATLAB中找到连续像素之间的颜色变化(渐变)吗?

2)如何提高背景的可见度?是否有任何过滤器可以增强背景可见度?

3 个答案:

答案 0 :(得分:0)

如果你的相机相当稳定且背景足够稳定,你可以减去后续图像。如果图像的烟雾部分与背景之间的差异足够大,那么前一帧中没有烟雾且位于新帧中的区域将显示比图像其余部分更大的差异。这将为您提供“新”烟雾的位置,您可以使用它来跟踪烟雾的进展情况。

答案 1 :(得分:0)

清除您可以使用的图像: -

im=imread('C:\Users\khaled\Documents\MATLAB\image.jpg');
clear_image= histeq(im);

要检测黑色和灰色的变化,请使用以下代码: -

im=rgb2gray(image);
BW = edge(I,'canny');
[B,L] = bwboundaries(BW,'noholes');
boundary = B{1}; 
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2);

答案 2 :(得分:0)

从计算机视觉系统工具箱中试用vision.ForegroundDetector