2017-05-29 64 views
-2

我嘗試使用下面的源代碼越來越多,地區在MATLAB

https://www.mathworks.com/matlabcentral/fileexchange/19084-region-growing

驅動程序

reg_maxdist = 0.2; 
I = gray_imread('my_image.png'); 
imshow(I); 
[x, y] = getpts; 
J = regiongrowing(I,x,y,reg_maxdist); 
imshow(J); 

我面臨着以下煩惱,

  1. 要獲得一個點,我首先需要點擊,然後按ENTER鍵。 (我不喜歡這個,我認爲按ENTER是多餘的)
  2. regiongrowing沒有給出任何輸出。

回答

2
  1. 可以使用ginput(n)從用戶那裏得到n個點(在你的情況n = 1),而不是getpts。請注意,ginput給出了浮點數,而getpts給出了整數。

  2. regiongrowing有一個錯誤 - 輸入應該是(I,y,x,reg_maxdist)而不是(I,x,y,reg_maxdist)

    % read image 
    reg_maxdist = 0.2; 
    I = im2double(imread('lena.jpg')); 
    subplot(121); 
    imshow(I); 
    % let the user pick one point 
    [x,y] = ginput(1); 
    % round to integer to match required input by regiongrowing function 
    x = round(x); 
    y = round(y); 
    % plot point on original image 
    hold on; 
    plot(x,y,'xg','MarkerSize',20,'LineWidth',2); 
    hold off; 
    % get region from seed point 
    J = regiongrowing(I,y,x,reg_maxdist); 
    % plot region 
    subplot(122); 
    imshow(J); 
    

    enter image description here