sarashakarami
شنبه 20 شهریور 1395, 22:00 عصر
سلام
من با استفاده از کدی که در همین سایت قرار داره خصوصیات فیزیکی چند نمونه میوه را بدست آوردم.(تشکر از سایت خوب:تشویق:)
ولی خودم هم کدهایی دیگه رو بهش اضافه کردم
می خوام خصوصیات فیزیکی دو نمونه میوه را بدست بیارم و اونها را داخل یک فایل اکسل قرار بدم و دیتاستی رو بدست بیارم که خصوصیات فیزیکی را داشته باشه
خصوصیات فیزیکی کاملا بدست می آیند ولی مشکل اینه که خصوصیت convex hull به صورت بردار هستش و در یک خانه جا نمیشه و برنامه منو دچار خطا کرده
نمی دونم چی کارش کنم
لطفا راهنمایی کنید که من convex hu;; را چطور بدست بیارم
در زیر کد را وارد کردم
clc;clear all;
close all;
%%%%%%%
Filter={'*.jpg;*.jpeg;*.png'};
[FileName, FilePath]=uigetfile(Filter);
if FileName==0
return;
end
FullFileName=[FilePath FileName];
p=imread(FullFileName);
imshow(p),title('fig1');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
v = rgb2gray(p);
%figure,imshow(v),title('p,fig2');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%figure,imshow(v),title('p,fig2');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hy = fspecial('sobel');
%figure, imshow(hy),title('hy,,fig3');
hx = hy';
%figure, imshow(hx),title('hx,fig4');
Iy = imfilter(double(v), hy, 'replicate');
%figure, imshow(Iy),title('Iy,fig5');
Ix = imfilter(double(v), hx, 'replicate');
%figure, imshow(Ix),title('Ix,fig6');
gradmag = sqrt(Ix.^2 + Iy.^2);
figure, imshow(gradmag),title('gradmag,fig7');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L = watershed(gradmag);
%figure, imshow(L),title('L,fig8');
Lrgb = label2rgb(L);
%figure, imshow(Lrgb),title('Lrgb,fig9');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
se = strel('disk', 50);
Io = imopen(v, se);
%figure, imshow(Io),title('Io,fig11');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ie = imerode(v, se);
%figure, imshow(Ie),title('Ie,fig12');
Iobr = imreconstruct(Ie, v);
%figure, imshow(Iobr),title('Iobr,fig13');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ioc = imclose(Io, se);
%figure, imshow(Ioc),title('Ioc,fig14');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Iobrd = imdilate(Iobr, se);
%figure, imshow(Iobrd),title('Iobrd,fig15');
Iobrcbr = imreconstruct(imcomplement(Iobrd),imcomplement(Iob r));
%figure, imshow(Iobrcbr),title('Iobrcbr,fig16');
Iobrcbr = imcomplement(Iobrcbr);
%figure, imshow(Iobrcbr),title('Iobrcbr,fig17');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fgm = imregionalmax(Iobrcbr);
%figure, imshow(fgm),title('fgm,fig18');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I2 = v;
%figure, imshow(I2),title('I2,fig19');
I2(fgm) = 255;
%figure, imshow(I2),title('I2,fig20');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
se2 = strel(ones(5,5));
fgm2 = imclose(fgm, se2);
%figure, imshow(fgm2),title('fgm2,fig22');
fgm3 = imerode(fgm2, se2);
%figure, imshow(fgm3),title('fgm3,fig23');
fgm4 = bwareaopen(fgm3, 20);
%figure, imshow(fgm4),title('fgm4,fig24');
I3 = v;
%figure, imshow(I3),title('I3,fig25');
I3(fgm4) = 255;
%figure, imshow(I3),title('I3,fig26');
%figure, imhist(I3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bw = im2bw(Iobrcbr, graythresh(Iobrcbr));
bw= bwareaopen(bw,50);
figure, imshow(bw),title('I3,fig27');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bw=~bw;
%figure, imshow(bw),title('I3,fig28');
d = bwconncomp(bw);
dd= regionprops(d,'All');
%figure, subplot(1,1,1);
figure,imshow(bw), title('tasvire baynere shodeh 29');
%%%%%
%feturearea= regionprops(bw,'area');
%%%%%%%%
mask = repmat(bw, [1 , 1 , 3]);
masked_img = immultiply(p , mask);
figure,imshow(masked_img);
%%%%%%%%%%%%%%%%%%5
A=imcrop(masked_img);
figure,imshow(A);
%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%5
%dataset
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data1=ones(78,9); %Sample 2-dimensional data
filename = 'ananas.xlsx';
%x=[contrastInfo; correlationInfo; energyInfo; homogeneityInfo];
Valu = [dd.Area, dd.MajorAxisLength, dd.MinorAxisLength, dd.Eccentricity,...
dd.ConvexHull, dd.Solidity, dd.Perimeter,dd.EulerNumber ];
col_header1 = [{'Area','MajorAxisLength','MinorAxisLength','Eccen tricity',...
'ConvexHull','ConvexArea','Solidity','Perimeter',' EulerNumber'};...
num2cell(Valu)];
row_header1(1:78,1)={'1'}; %???? ?? ????? 1 ?? 10 ?? ????? ??? ?????? ???? ?? ????? 1 ???
xlswrite( 'ananas.xlsx',col_header1,'Sheet1','B1'); %Write column header
xlswrite( 'ananas.xlsx',data1,row_header1,'Sheet1','A2'); %Write row header
%%%%%%%%%%%%%%%%%
تصاویر هم درج شدند
من با استفاده از کدی که در همین سایت قرار داره خصوصیات فیزیکی چند نمونه میوه را بدست آوردم.(تشکر از سایت خوب:تشویق:)
ولی خودم هم کدهایی دیگه رو بهش اضافه کردم
می خوام خصوصیات فیزیکی دو نمونه میوه را بدست بیارم و اونها را داخل یک فایل اکسل قرار بدم و دیتاستی رو بدست بیارم که خصوصیات فیزیکی را داشته باشه
خصوصیات فیزیکی کاملا بدست می آیند ولی مشکل اینه که خصوصیت convex hull به صورت بردار هستش و در یک خانه جا نمیشه و برنامه منو دچار خطا کرده
نمی دونم چی کارش کنم
لطفا راهنمایی کنید که من convex hu;; را چطور بدست بیارم
در زیر کد را وارد کردم
clc;clear all;
close all;
%%%%%%%
Filter={'*.jpg;*.jpeg;*.png'};
[FileName, FilePath]=uigetfile(Filter);
if FileName==0
return;
end
FullFileName=[FilePath FileName];
p=imread(FullFileName);
imshow(p),title('fig1');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
v = rgb2gray(p);
%figure,imshow(v),title('p,fig2');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%figure,imshow(v),title('p,fig2');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hy = fspecial('sobel');
%figure, imshow(hy),title('hy,,fig3');
hx = hy';
%figure, imshow(hx),title('hx,fig4');
Iy = imfilter(double(v), hy, 'replicate');
%figure, imshow(Iy),title('Iy,fig5');
Ix = imfilter(double(v), hx, 'replicate');
%figure, imshow(Ix),title('Ix,fig6');
gradmag = sqrt(Ix.^2 + Iy.^2);
figure, imshow(gradmag),title('gradmag,fig7');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L = watershed(gradmag);
%figure, imshow(L),title('L,fig8');
Lrgb = label2rgb(L);
%figure, imshow(Lrgb),title('Lrgb,fig9');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
se = strel('disk', 50);
Io = imopen(v, se);
%figure, imshow(Io),title('Io,fig11');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ie = imerode(v, se);
%figure, imshow(Ie),title('Ie,fig12');
Iobr = imreconstruct(Ie, v);
%figure, imshow(Iobr),title('Iobr,fig13');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ioc = imclose(Io, se);
%figure, imshow(Ioc),title('Ioc,fig14');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Iobrd = imdilate(Iobr, se);
%figure, imshow(Iobrd),title('Iobrd,fig15');
Iobrcbr = imreconstruct(imcomplement(Iobrd),imcomplement(Iob r));
%figure, imshow(Iobrcbr),title('Iobrcbr,fig16');
Iobrcbr = imcomplement(Iobrcbr);
%figure, imshow(Iobrcbr),title('Iobrcbr,fig17');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fgm = imregionalmax(Iobrcbr);
%figure, imshow(fgm),title('fgm,fig18');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I2 = v;
%figure, imshow(I2),title('I2,fig19');
I2(fgm) = 255;
%figure, imshow(I2),title('I2,fig20');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
se2 = strel(ones(5,5));
fgm2 = imclose(fgm, se2);
%figure, imshow(fgm2),title('fgm2,fig22');
fgm3 = imerode(fgm2, se2);
%figure, imshow(fgm3),title('fgm3,fig23');
fgm4 = bwareaopen(fgm3, 20);
%figure, imshow(fgm4),title('fgm4,fig24');
I3 = v;
%figure, imshow(I3),title('I3,fig25');
I3(fgm4) = 255;
%figure, imshow(I3),title('I3,fig26');
%figure, imhist(I3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bw = im2bw(Iobrcbr, graythresh(Iobrcbr));
bw= bwareaopen(bw,50);
figure, imshow(bw),title('I3,fig27');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bw=~bw;
%figure, imshow(bw),title('I3,fig28');
d = bwconncomp(bw);
dd= regionprops(d,'All');
%figure, subplot(1,1,1);
figure,imshow(bw), title('tasvire baynere shodeh 29');
%%%%%
%feturearea= regionprops(bw,'area');
%%%%%%%%
mask = repmat(bw, [1 , 1 , 3]);
masked_img = immultiply(p , mask);
figure,imshow(masked_img);
%%%%%%%%%%%%%%%%%%5
A=imcrop(masked_img);
figure,imshow(A);
%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%5
%dataset
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data1=ones(78,9); %Sample 2-dimensional data
filename = 'ananas.xlsx';
%x=[contrastInfo; correlationInfo; energyInfo; homogeneityInfo];
Valu = [dd.Area, dd.MajorAxisLength, dd.MinorAxisLength, dd.Eccentricity,...
dd.ConvexHull, dd.Solidity, dd.Perimeter,dd.EulerNumber ];
col_header1 = [{'Area','MajorAxisLength','MinorAxisLength','Eccen tricity',...
'ConvexHull','ConvexArea','Solidity','Perimeter',' EulerNumber'};...
num2cell(Valu)];
row_header1(1:78,1)={'1'}; %???? ?? ????? 1 ?? 10 ?? ????? ??? ?????? ???? ?? ????? 1 ???
xlswrite( 'ananas.xlsx',col_header1,'Sheet1','B1'); %Write column header
xlswrite( 'ananas.xlsx',data1,row_header1,'Sheet1','A2'); %Write row header
%%%%%%%%%%%%%%%%%
تصاویر هم درج شدند