سلام
من با استفاده از کدی که در همین سایت قرار داره خصوصیات فیزیکی چند نمونه میوه را بدست آوردم.(تشکر از سایت خوب)
ولی خودم هم کدهایی دیگه رو بهش اضافه کردم
می خوام خصوصیات فیزیکی دو نمونه میوه را بدست بیارم و اونها را داخل یک فایل اکسل قرار بدم و دیتاستی رو بدست بیارم که خصوصیات فیزیکی را داشته باشه
خصوصیات فیزیکی کاملا بدست می آیند ولی مشکل اینه که خصوصیت 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


%%%%%%%%%%%%%%%%%







تصاویر هم درج شدند