EGG CRACK DETECTION :(

8 views (last 30 days)
john ericson ignacio
john ericson ignacio on 4 Apr 2017
Edited: Stephen23 on 24 Oct 2018
Im having hard time coding this but looks like i need help :)
Clc;
Clear all;
Close all;
Input_Image=captureImg();
%[filename,pathname] = uigetfile(‘*.*’);
%eggImage1=imread([pathname filename]);
%eggImage1=imread(‘C’);
%figure;imshow(eggImage1); title(‘Original image’);
%%detect and extract regions
grayImage=rgbygray(Input_Image);
edgeimage = edge(grayImage,canny,0.31691);
%
%
%
Old
bwImage = im2bw(grayImage,0.9999);
figure;imshow(bwImage);title(BW image)
BW1 = edge(R,'sobel',0.9);
BW2 = edge(R,'canny',0.3);
figure;
imshowpair(BW1,BW2,'montage')
title('Sobel Filter Canny Filter');
BW1 = edge(grayImage,'sobel',0.9);
BW2 = edge(grayImage,'canny',0.3);
!
51!
figure;
imshowpair(BW1,BW2,'montage')
title('Sobel Filter Canny Filter');
bwR = im2bw(R,0.18);
figure, imshow(bwR); title('BW of Range Filtered image')
%J = entropyfilt(grayImage);
S = stdfilt(grayImage);
figure, imshow(S,[]); title('Std Filtered image')
bwR = im2bw(R);
figure, imshow(bwR); title('BW of Range Filtered image')
%}
saveName = strcat('D:\Wood Dimension\CaptImgs\','',num2str(no),'.jpg'); baseDir = 'D:\Wood Dimension\CaptImgs\'; newName = [baseDir num2str(no) '.jpg']; imwrite(Input_Image,newName); %%Find File information %info = imfinfo([path_name file_name]); info = imfinfo(newName);
thres = graythresh(Input_Image);
GS_Image = rgb2gray(Input_Image);
filt_im = medfilt2(GS_Image, [3 3]);
imtool(filt_im);
thres = graythresh(filt_im);
BW_Image = ~(im2bw(filt_im,thres));%tilde for light BG, dark FG
%figure,imshow(BW_Image);
BW_Image = bwareaopen(BW_Image,100);
Comp_Image = bwconncomp(BW_Image);%Connected Component of BW image
!
52!
stats = regionprops(Comp_Image, {'BoundingBox'});
W_pix = stats.BoundingBox(3);
H_pix = stats.BoundingBox(4);
%pause(10);
%W_pix
%H_pix
disp('DIMENSTIONS OF METAL IN Cm');
H=H_pix/69.77;
W=W_pix/75.06;
H=['Height is ',num2str(H),' cm']
W=['Width is ',num2str(W),' cm']
bwAreaopen = bwareaopen(edgeImage,200);
BW = bwAreaopen;
crack_pix = 0;
[B,L,N] = bwboundaries(BW);
for k=1:length(B),
boundary = B{k};
if(k > N)
plot(boundary(:,2),...
boundary(:,1),'g','LineWidth',2);
crack_pix = crack_pix + 1;
end
end
crack_pix = W_pix;
if crack_pix >= 610
%seial_send('c'); %Cracked
disp('Cracked');
else
%serial_send('n'); %Not Cracked
!
53!
disp('Metal is Normal');
end
close all;
%%%%%%%%%%%%%%Serial send%%%%%%%%%%%%%%%%%%
function serial_send(Msg)
global COM;
COM = serial('COM3','BaudRate',9600,'DataBits',8);
fopen(COM);
disp('Sending...');
pause(2);
fprintf(COM,'%s',Msg);
disp(Msg);
pause(3);
fclose(COM);
delete(COM);
clear COM;
disp('Closing COM port');
end
%%%%%%%%%%%%%%%%%%%Capture %%%%%%%%%%%%%%%%%%%%
function serial_send(Msg)
global COM;
COM = serial('COM3','BaudRate',9600,'DataBits',8);
fopen(COM);
!
54!
disp('Sending...');
pause(2);
fprintf(COM,'%s',Msg);
disp(Msg);
pause(3);
fclose(COM);
delete(COM);
clear COM;
disp('Closing COM port');
end
%%%%%%%%%%%%%%%%%%%%%serial rcv
%%%%%%%%%%%%%%%%%%%%%
function [rcv_cmd] = serial_rcv()
global ser;
ser = serial('COM4','BaudRate',9600,'DataBits',8);
fopen(ser);
rcv_cmd = fscanf(ser,'%s');
fclose(ser);
delete(ser);
clear ser;
end

Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!