返回图像的matlab函数

返回图像的matlab函数,matlab,function,image-processing,Matlab,Function,Image Processing,我在matlab中创建了一个函数,返回图像: function [BW3] =lineAnalysis( BW1, O) BW2 = double(BW1 > 0); BW3 = BW2(2:end, :); % <-- REMOVE 1st LINE (ARTIFACT)! if O==0; % 1 for left BW3 = fliplr(BW3); % <-- FLIP IT HERE! end BW3_orig = BW3; % <-- SAVE

我在matlab中创建了一个函数,返回图像:

 function [BW3] =lineAnalysis( BW1, O)

BW2 = double(BW1 > 0);
BW3 = BW2(2:end, :); % <-- REMOVE 1st LINE (ARTIFACT)!


if O==0; % 1 for left 
  BW3 = fliplr(BW3); % <-- FLIP IT HERE!
end 
BW3_orig = BW3; % <-- SAVE ORIGINAL VERSION

% STEP 1
n = 10; t = 0.9; 
c = 0:(n - 1);
j0 = 1;
while mean(mean(BW3(1 + c, j0 + c))) < t 
  j0 = j0 + 1;
end 

% STEP 2
i0 = 1;
while mean(mean(BW3(i0 + c, 1 + c))) < t 
  i0 = i0 + 1;
end 

% STEP 3
a = (1 - j0) / (i0 - 1);
b = j0 - a;
for i = 1:i0
   for j = 1:round(a * i + b)
      BW3(i, j) = 0;
   end
end

% STEP 4
w = 20; 
for i = 1:round(i0 - w / a)
   for j = max(1, round(a * i + b + 1)):round(a * i + b + w)
      BW3(i, j) = 1; 
   end
end

% PLOT RESULT
[BW3] = size(BW3);

[nr, nc] = size(BW3);
  % figure

subplot(122), imagesc(BW3), colormap(gray)
axis equal off, axis([1, nc, 1, nr]), title('Corrected')
然后,我尝试通过以下方式显示图像:

 imshow(BW3);
然而,当我像这样显示图像时,这不起作用。它只是简单地将一个黑色图像和一个白色图像浸入其中

谁能告诉我怎么解决这个问题


谢谢:)

问题就在代码的末尾:

function [BW3] =lineAnalysis( BW1, O)

  %% your calculations here

  % PLOT RESULT
  [BW3] = size(BW3);

  imshow(BW3);

[BW3]=大小(BW3)将图像替换为具有图像行数和列数的2元素向量。

这也不起作用!它只是显示了一个白色的图像。我将在问题中添加函数的代码,以防出错somewehre@user1853871是的,你最好粘贴你的代码和准确的错误。您当前的解释还不够,但我敢打赌,这与将图像从logical or uint8更改为double有关。@user1853871它无法工作。如果有效,那么您粘贴在问题上的代码与您正在运行的代码不同;I’’我很傻,我现在正在工作,我没有正确地读你的答案。
function [BW3] =lineAnalysis( BW1, O)

  %% your calculations here

  % PLOT RESULT
  [BW3] = size(BW3);

  imshow(BW3);