在MATLAB中使用imfill命令发出问题

时间:2016-08-12 11:51:14

标签: matlab variables command

您好我有一个二进制变量(名为'列'大小为733x1),我正在尝试更改介于0和1之间的0到1' s(即00001110011 ...至00001111111 ...)。我曾尝试使用imfill,但一直无法这样做。我已经将它从逻辑类型转换为uint8来帮助,但它还没有工作。

column=column*255 % convert to form to work with 'imfill' command
column_fill=uint8(column)
column_fill=imfill(column); 

然而,在我的变量中的1到1之间,我仍然有几个0,我想摆脱它。 Link to data。输出(从000..000111000011101 ...到000..000111111111111 ...)谢谢。

2 个答案:

答案 0 :(得分:1)

您可以将imfill'holes'选项

一起使用
BW2= imfill(BW,'holes')

但是你应该保留你的图像二进制而不是乘以255。

答案 1 :(得分:1)

尝试以下示例:

load data
column=column100*255 % convert to form to work with 'imfill' command

%Create column filled with 255 values.
white_column = ones(size(column))*255;

%Padd column from both sides (create 3 columns image).
im = [white_column, column, white_column];

%Apply imfill on image im
im_fill = imfill(uint8(im)); 

%Extract center column of im_fill.
column_fill = im_fill(:, 2);

您也可以在不使用imfill的情况下尝试以下代码:

column_fill = column100;
column_fill(find(column100 == 1, 1):find(column100 == 1, 1, 'last')) = 1;