나는이 프로젝트에서 그래프를 추출 할 때 내 프로젝트를 수행하고있다. 이진 이미지를 균등 한 세그먼트로 나누었다.
C = (이미지의 너비/10 (i = 1, ..., C, j = 1, ..., C)의 각각에 대해 동일한 크기의 'CxR'세그먼트로 분할 된 R = (이미지의 높이/10) R) 노드는 결과 그래프에 삽입되고 질량 중심 (xm, ym)의 (x, y) 좌표에 의해 분류됩니다. 공식적으로 우리는 세그먼트 sij에서 전경 픽셀 수를 계산합니다. xw와 yw는 sij의 전경 픽셀의 x 및 y 좌표 세그먼트에 전경 픽셀이 포함되어 있지 않으면 질량 중심을 결정할 수 없으므로이 세그먼트에 대한 노드가 만들어지지 않습니다. 내 코드에서이미지에서 각 세그먼트를 연결하는 방법
나는 각 분야에서 질량 중심을 계산하지만 난의 질량 중심을 얻고이 문제가 내 코드에서
clc;
clear all;
close all;
X=imread('math.jpg');
imfinfo('math.jpg')
figure,imshow(X)
b = imresize(X,[100,100]);
si = size(b,1);
sj = size(b,2);
figure;imshow(b);
% Binarization
th = graythresh(b);
I = im2bw(b,th);
w = 5;
h = 5;
c=si/w;
r=sj/h;
% Skeletonised
kl=bwmorph(~I,'thin',inf);
figure,imshow(kl)
R(:,:)=kl(:,:);
I=1;
U1=w;
J=1;
U2=h;
E=1;
for i=1:r
for j=1:c
B(I:U1,J:U2)=R(I:U1,J:U2);
[x,y]=find(B==1);
XX=mean(x);
YY=mean(y);
XXX(E)=CX;
YYY(E)=CY;
T(I:U1,J:U2)=B(I:U1,J:U2);
J=J+w;
U2=U2+h;
E=E+1;
clear B x y
end
I=I+w;
U1=U1+h;
J=1;
U2=h;
end
imshow(R)
hold on
plot(XX,YY, 'g*');
hold off
를 해결하는 데 도움을 주시기 바랍니다 이미지의 각 노드를 연결하려면 각 세그먼트
전경 픽셀이 제가
그래프를 결과에 노드 상에 플롯 된 점을 추가 내 출력 output of my code도움이고
편집은 input image
clc;
clear all;
close all;
X=imread('math.jpg');
imfinfo('math.jpg')
figure,imshow(X)
b = imresize(X,[100,100]);
si = size(b,1);
sj = size(b,2);
%figure;imshow(b);
% Binarization
th = graythresh(b);
I = im2bw(b,th);
%Skeletonised
kl=bwmorph(~I,'thin',inf);
figure,imshow(kl)
R(:,:)=kl(:,:);
%grid size
t1=10;
D=100;
I=1;
U1=t1;
J=1;
U2=t1;
E=1;
t2=D/t1;
%Z=1;
for i=1:t2
for j=1:t2
B(I:U1,J:U2)=R(I:U1,J:U2);
[x,y]=find(B==1);
CX=mean(x);
CY=mean(y);
CXXX(E)=CX;
CYYY(E)=CY;
CXX(i,j)=CX;
CYY(i,j)=CY;
T(I:U1,J:U2)=B(I:U1,J:U2);
J=J+t1;
U2=U2+t1;
E=E+1;
clear B x y
end
I=I+t1;
U1=U1+t1;
J=1;
U2=t1;
end
%plot and grid
figure,imshow(R)
hold on
M = size(R,1);
N = size(R,2);
a=t1;
b=t1;
for k = 1:a:M
x = [1 N];
y = [k k];
plot(x,y,'Color','white');
set(findobj('Tag','MyGrid'),'Visible','on')
end
for k = 1:b:N
x = [k k];
y = [1 M];
plot(x,y,'Color','white');
set(findobj('Tag','MyGrid'),'Visible','on')
end
plot(CXX,CYY, 'g*');
hold off
는 선생님이 편집 코드를 시도하십시오.
당신은 샘플 입력 이미지를 제공 할 수 있습니까? 코드가 실행되면 훨씬 쉽게 이해할 수 있습니다. – m7913d
플롯 (XX, YY, 'k -', 'Markersize', 10); – m7913d
선생님, 제 입력 이미지와 편집 된 코드를 삽입하고 코드를 실행하십시오. 도와주세요. – shivu