You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.5 KiB
Matlab
65 lines
2.5 KiB
Matlab
clear
|
|
|
|
%LOAD INPUT IMAGE
|
|
|
|
%I=zeros(31,35); I(16,7:13)=1; I(16,23:29)=1; I(16,15:21)=0.1;
|
|
%I=zeros(35,35); I(16,8:15)=1; I(22,21:28)=1; I(19,18)=1;
|
|
I=zeros(35,35); I(15,8:15)=1; I(21:28,21)=1; %I(17,19)=1;
|
|
|
|
%I=image_synthetic_simple; %edge and bar
|
|
%I=image_edge_test';I(I<0.6)=0;I=imresize(I,2);%I=I./4;
|
|
%I=image_synthetic_edgewidth;
|
|
%I=image_synthetic_tjunction; I=abs(I-1); %t-junction between bars
|
|
%I(15:25,:)=1;%I(21,21)=0;
|
|
%I(15:40,15:25)=1;I(21,21)=0;
|
|
%I=image_synthetic_cross; %intersection between bars
|
|
%I=image_synthetic_surf_junction;
|
|
%I=image_synthetic_textures; %texture, blocks, and edges
|
|
%I=im2single(rgb2gray(imread('../Data/Images/test.png'))); %parallel and colinear bars
|
|
%I=im2single(rgb2gray(imread('../Data/Images/test_circles.png'))); %co-centric circles
|
|
%I=im2single(rgb2gray(imread('../Data/Images/test_squares.png'))); %co-centric squares
|
|
%I=im2single(imread('../Data/Images/synthetic.pgm')); %texture, blocks, and edges
|
|
|
|
%I=im2single(rgb2gray(imread('../Data/Images/zebra_reduced.png')));
|
|
%I=im2single(rgb2gray(imread('../Data/Images/elephant_reduced.png')));
|
|
%I=im2single(imread('../Data/Images/elephant.png')); %I=I(210:350,240:380);%I=I(238:337,260:359);
|
|
%I=im2single(imread('../Data/Petkov_natural_images_with_edge_ground_truth/goat_3.pgm'));
|
|
%I=im2single(imread('../Data/Petkov_natural_images_with_edge_ground_truth/elephant_2.pgm'));
|
|
I=im2single(imread('../Data/Petkov_natural_images_with_edge_ground_truth/basket.pgm')); I=I(100:460,200:460); %I=I(440:500,400:500); %
|
|
%I=im2single(imread('../Data/Images/189003.jpg'));
|
|
%I=rgb2gray(imgRead(58060));
|
|
%I=rgb2gray(imgRead(175043));%I=I(101:250,1:200); %snake from Berkeley test set
|
|
%I=image_equal_luminance;
|
|
|
|
%I=imresize(I,0.25);
|
|
I=single(I);
|
|
I=abs(I-1); %make image negative, so that we can invert colormap
|
|
[a,b]=size(I);
|
|
maxsubplot(2,2,3); plot_cropped_image(I,0,[0,1]); title('Input image');
|
|
|
|
%PRE-PROCESS IMAGE TO GENERATE INPUT TO V1 MODEL
|
|
X=preprocess_V1_input(I);
|
|
|
|
maxsubplot(2,2,2); plot_cropped_image(X{1}-X{2},0,[-0.8,0.8]); title('Xon-Xoff');
|
|
|
|
[y,s,r,ytrace]=v1_edge_detection(X);
|
|
|
|
visFilters=filter_definitions_V1_edge_recon;
|
|
for j=1:length(y)
|
|
ysum{j}=zeros(a,b);
|
|
end
|
|
figure,clf
|
|
for t=1:30
|
|
for j=1:length(y)
|
|
ytmp{j}=ytrace{j}(:,:,t);
|
|
ysum{j}=ysum{j}+ytmp{j};
|
|
end
|
|
rtmp=reconstruct_edges(ytmp,visFilters,[1:length(y)/2],0,1);
|
|
|
|
maxsubplot(6,5,t),plot_cropped_image(rtmp);
|
|
end
|
|
figure,clf
|
|
ReconVis=reconstruct_edges(ysum,visFilters,[1:length(y)/2],0,1);
|
|
plot_cropped_image(ReconVis,0,[0,0.5]);
|
|
|