Matlab使用矩阵/图像重置特定像素(3 dims)

Matlab使用矩阵/图像重置特定像素(3 dims),matlab,image-processing,Matlab,Image Processing,我正在尝试决定,对于单个帧,是否要将其添加到帧中。。 (实现背景减法) 我如何快速地完成它?(我做了循环,它的工作真的很慢…) 这就是我所拥有的:(seq是输入,diff是我测试的图像,F是新图像) 谢谢 您的问题缺少过滤器的一些定义,但除此之外,我可以提供一个基本的图像掩蔽模板: img=imread(...) %some input image mask = sum( img>threshold , 3) >0 %now the tricky part, we have a nx

我正在尝试决定,对于单个帧,是否要将其添加到帧中。。 (实现背景减法)

我如何快速地完成它?(我做了循环,它的工作真的很慢…)

这就是我所拥有的:(seq是输入,diff是我测试的图像,F是新图像)


谢谢

您的问题缺少过滤器的一些定义,但除此之外,我可以提供一个基本的图像掩蔽模板:

img=imread(...) %some input image
mask = sum( img>threshold , 3) >0
%now the tricky part, we have a nxmx3 image and a nxm mask to filter:
img2=bsxfun(@times,img,mask);

您可以修改bsxfun行,但使用二进制矩阵指示要选择的图像是最常用的方法。因此,根据您的要求调整掩码。

您如何使用diff是完全没有意义的,您能解释一下这个阈值应该描述什么吗?循环算法的
应该翻译为
掩码=总和(img>阈值,3)>0
:如果三个RGB分量中至少有一个是>threshold,保持像素不变。@Magla:你可能是对的。我理解diff是内置函数,但再次查看代码时,它似乎是一个包含图像的矩阵。
img=imread(...) %some input image
mask = sum( img>threshold , 3) >0
%now the tricky part, we have a nxmx3 image and a nxm mask to filter:
img2=bsxfun(@times,img,mask);