محاسبه convex hull برای بدست اوردن خصوصیات فیزیکی

ساخت وبلاگ

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

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


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

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 209 تاريخ : شنبه 20 شهريور 1395 ساعت: 14:33