Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MATLAB找到图像中背景颜色的变化?_Matlab_Image Processing_Computer Vision - Fatal编程技术网

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

如何使用MATLAB找到图像中背景颜色的变化?,matlab,image-processing,computer-vision,Matlab,Image Processing,Computer Vision,我有一个视频,上半部分背景为白色,下半部分背景为灰色。随着视频的继续,烟雾弥漫,背景的可见性降低。相机抖动,因此黑色背景变为白色的点不断变化(上下移动)。我的目标是通过跟踪黑色背景变为灰色的垂直位置来量化每帧中的相机抖动 我想跟踪背景从黑色变为灰色的垂直坐标(Y)。对此,我有以下问题: 1) 如何识别颜色的变化?有没有什么方法可以在MATLAB中找到连续像素之间的颜色变化(梯度) 2) 如何增加背景的可见性?是否有任何过滤器来增强背景的可见性?如果您的相机处于合理的静止状态,并且背景足够稳定,您

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

我想跟踪背景从黑色变为灰色的垂直坐标(Y)。对此,我有以下问题:

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


2) 如何增加背景的可见性?是否有任何过滤器来增强背景的可见性?

如果您的相机处于合理的静止状态,并且背景足够稳定,您可以减去后续图像。如果图像中烟雾部分与背景之间的差异足够大,则烟雾不在前一帧和新帧中的区域将显示比图像其余部分大得多的差异。这将为您提供“新”烟雾的位置,您可以使用它跟踪烟雾的进展情况。

要清除图像,您可以使用:-

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);

请尝试计算机视觉系统工具箱中的vision.ForegroundDetector。

谢谢您的回复。我之前的目标不明确。我已经修改了这个问题,把我的目标包括在内。我必须通过跟踪一个静止的物体来量化相机的抖动,在这种情况下就是背景。视频中的所有前景功能都在移动。是否只检测垂直抖动?水平晃动不是问题吗?您是否尝试过一种简单的光流算法()来检测震动?