我正在尝试编写一个函数来对灰度图像F
和阈值t
(0 ≤ t ≤ 255
)进行阈值处理,以使{{1} }和r = 0
。
我试图实现这一点,但是r < t
不会产生输出。
r = 255
这应该对此图像进行阈值处理。但是,它没有这样做。我在做什么错了?
答案 0 :(得分:3)
最好使用logical indexing:
f(f<t)=0; % set all elements of f<t to 0
f(~(f==0))=1; % Set all elements where f is not 0 (i.e. the rest) to 1
f<t
很好地生成了一个符合条件的逻辑矩阵,但是随后您进行了f=1
或f=0
的操作,这意味着您将f
的全部设置为一个标量(一个或零),它当然只是绘制黑色或白色正方形。取而代之的是,使用逻辑矩阵作为对矩阵本身的索引操作,然后为每个true
条目分配所需的值,就像上面一样。
此外,function
定义位于其自己的文件中或位于脚本的底部。因此,您可以将函数另存为imgThreshold.m
,其余部分留给脚本使用,或者先调用脚本并在调用function f = imgThreshold(img, t)
imshow
等。