Find the coordinates nearest to the center coordinate of a patch in an image

조회 수: 3 (최근 30일)
i have an image of size [512 512], and xy coordinates values, which have been found on the whole image. (I have attached an example xy coordinate which i'm working on)
Now i wanted to divide the image into blocks of size [128 128], and
I need to find the center most xy coordinate that falls on each patch
  댓글 수: 2
darova
darova 2020년 6월 11일
you can divide your matrix using mat2cell
  • I wanted to find the center xy coordinate value that falls in each patch, and crop from the center a new patch of size [100 100]
Don't understand that. Can you explain?

댓글을 달려면 로그인하십시오.

채택된 답변

darova
darova 2020년 6월 12일
See this simple example
x = rand(100,1); % random data
y = rand(100,1);
[x1,y1] = meshgrid(0.05:.3:1); % mesh
D = pdist2([x y],[x1(:) y1(:)]); % combinations of distances
[~,ix] = min(D); % closest distances (indices)
plot(x,y,'.r')
hold on
plot(x1,y1,'.-b','markersize',25)
plot(x1',y1','.-b')
plot(x(ix),y(ix),'om','markersize',20)
hold off

추가 답변 (1개)

Rob Robinson
Rob Robinson 2020년 6월 12일
편집: Rob Robinson 2020년 6월 12일
centres = cell((size(ca,1)-1),(size(ca,2)-1));
for r = 1:size(ca,1)-1
for c = 1:size(ca,2)-1
centrePoint = [(blockSizeR/2 +(blockSizeR*(r-1))) (blockSizeC/2 + (blockSizeR*(c-1)))];
distance = sqrt(sum((xy-centrePoint).^2,2));
[value, rowId] = min(distance);
centres{r,c} = xy(rowId,:);
end
end
I think this is what you meant? But this won't return any kind of error if the nearest xy point lies outside of the "patch" - something to be wary of. ( I assumed the RGB array was a matrix of values size 256x256)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by