2017-03-28 27 views
0

我想知道是否可以仅在骨架的某些点上进行扩张。例如,如果我们在下面的图像中拍摄图像,只能扩大与矩形的左上角和左下角对应的骨架点? (每个点的坐标将被称为) enter image description here特定点的扩张

回答

1

只是用另一个阵列上应用扩张:

% create example matrix 
A = false(100); 
A([2 end-1],[2:end-1]) = 1; 
A([2:end-1],[2 end-1]) = 1; 
A(sub2ind(size(A),2:99,2:99)) = 1; 
A(sub2ind(size(A),99:-1:2,2:99)) = 1; 
subplot(121); 
imshow(A); 
title('original'); 
% decide points for dilation 
pointsForDilation = [2,2;9,9,;99,99]; 
hold on; 
plot(pointsForDilation(:,1),pointsForDilation(:,2),'xr','MarkerSize',10,'LineWidth',2); 
% create a matrix for dilation 
B = false(size(A)); 
B(sub2ind(size(B),pointsForDilation(:,2),pointsForDilation(:,1))) = 1; 
% dilate matrix B 
C = imdilate(B,ones(5)); 
% add dilated matrix to original 
res = A | C; 
subplot(122); 
imshow(res); 
title('desired points dilated'); 

,你会得到这样的: enter image description here