Matlab:矩阵操作:更改二进制矩阵中中心像素周围的像素值

Matlab:矩阵操作:更改二进制矩阵中中心像素周围的像素值,matlab,Matlab,我今天还有一个问题: 我有一个二元矩阵t,其中1代表河道,0代表洪水面和周围的山脉: t = Alog>10; figure imshow(t) axis xy 为了进一步计算,我想在每个方向将河道的面积扩大几个像素。一般来说,我希望在图像中显示更宽的通道,以便在以后的水力模型中包含更大的区域 这是我的尝试,在某些地区确实有效,但在河流与x-y轴成对角线的地区,它不会加宽河道。在接近这一点时似乎有一种流动,我不能完全理解 [q,o] = find(t == 1); qq = ze

我今天还有一个问题: 我有一个二元矩阵t,其中1代表河道,0代表洪水面和周围的山脉:

t = Alog>10;
figure
imshow(t)
axis xy
为了进一步计算,我想在每个方向将河道的面积扩大几个像素。一般来说,我希望在图像中显示更宽的通道,以便在以后的水力模型中包含更大的区域

这是我的尝试,在某些地区确实有效,但在河流与x-y轴成对角线的地区,它不会加宽河道。在接近这一点时似乎有一种流动,我不能完全理解

[q,o] = find(t == 1);   

qq = zeros(length(q),11);
oo = zeros(length(o),11);

% add +-5 pixel to result
for z=1:length(q)
    qq(z,:) = q(z)-5:1:q(z)+5;
    oo(z,:) = o(z)-5:1:o(z)+5;
end
% create column vectors
qq = qq(:);
oo = oo(:);

cords = [oo qq]; % [x y]

% remove duplicates
cords = unique(cords,'rows');

% get limits of image
[limy limx] = size(t);

% restrict to x-limits
cords = cords(cords(:,1)>=1,:);
cords = cords(cords(:,1)<=limx,:);

% restrict to y-limits
cords = cords(cords(:,2)>=1,:);
cords = cords(cords(:,2)<=limy,:);

% test image
l = zeros(size(img));
l(sub2ind(size(l), cords(:,2)',cords(:,1)')) = 1;
figure
imshow(l)
axis xy
[q,o]=find(t==1);
qq=零(长度(q),11);
oo=零(长度(o),11);
%将+-5像素添加到结果中
对于z=1:长度(q)
qq(z,:)=q(z)-5:1:q(z)+5;
oo(z,:)=o(z)-5:1:o(z)+5;
结束
%创建列向量
qq=qq(:);
oo=oo(:);
跳线=[oo qq];%[x y]
%删除重复项
跳线=唯一(跳线,'行');
%获得图像的极限
[limy limx]=尺寸(t);
%限制到x极限
跳线=跳线(跳线(:,1)>=1,:);
跳线=跳线(跳线(:,1)=1,:);
跳线=跳线(跳线(:,2)您可以从图像处理应用。可以在您的示例中使用

从图像处理工具箱中,您可以使用命令
BW2=bwmorph(BW,'deplate')
或imdeplate命令
IM2=imdeplate(IM,SE)


其中,
IM
是您的图像,
SE
是结构元素。您可以设置
SE=one(3);
将二值图像放大“一个像素”-但它可以根据您的应用程序进行更改。或者,如果需要,您可以使用相同的结构元素将图像放大几次。

如果您有图像处理工具箱,则应使用该函数。这将执行形态学操作。请尝试以下代码:

SE = strel('square',3);
channelThick = imdilate(channelThin,SE);

其中SE是一个3x3的正方形,用于放大存储在channelThin中的图像。这将在每个方向上将channelThin中的区域扩展一个像素。要扩展更多,请使用更大的结构元素或多次迭代。

非常好。谢谢!除了bwmor之外,IMDISPLATE和BWMORP的使用有什么不同吗ph不允许更改结构元素?二进制输入图像没有区别。通常,图像处理工具箱中以“bw”开头的函数指的是对二进制图像的操作,而以“im”开头的函数指的是对二进制图像的操作前缀指的是对灰度图像进行操作的函数。我认为
imdeplate
可以将灰度图像作为输入,它可以让您设置自己的结构元素。我明白了,好吧!感谢您同样有用的回答和帮助!完美,这是我一直在寻找的快速简便的解决方案。我想知道是否有办法找到像t这样的解决方案他(以前没有使用过)没有询问这样的社区。我只是无法将我的问题与这些工具联系起来。。。