0
我已經創造了MATLAB函數返回一個形象: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);
內的函數。
我也試着這樣做:
[BW3]=lineAnalysis(P, O);
然後我試圖做
imshow(BW3);
然而,這不工作時,我表明這樣的圖像來顯示圖像。它只是插入一個黑色圖像和一個白色圖像。
誰能告訴我如何解決這個問題?
謝謝:)
這也沒用!它只是顯示一個白色的圖像。我會將我的函數的代碼添加到問題,因爲我錯了一些 – user1853871
@ user1853871是的,你最好粘貼你的代碼和確切的錯誤。你目前的解釋是不夠的,但我打賭它必須將你的圖像從邏輯或uint8變成雙重。 – carandraug
@ user1853871它不能工作。如果它有效,那麼你在問題上粘貼的代碼與你正在運行的代碼不一樣。 – carandraug