How Can i solve this problem?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Syed Zenith Rhyhan
le 15 Avr 2019
Réponse apportée : Amel Ezzine
le 27 Jan 2020
clc;
clear all;
close all;
[I,path]=uigetfile('*.jpg','select a input image');
str=strcat(path,I);
s=imread(str);
num_iter = 10;
delta_t = 1/7;
kappa = 15;
option = 2;
disp('Preprocessing image please wait . . .');
ad = anisodiff(s,num_iter,delta_t,kappa,option);
figure, subplot 121, imshow(s,[]),title('Input image'), subplot 122, imshow(ad,[]),title('Fitered image'),
fprintf('\nPress R \n');
pause;
disp('classifying tumor boundary');
m = zeros(size(ad,1),size(ad,2)); %-- create initial mask
m(90:100,110:135) = 1; % main 2
ad = imresize(ad,.5); %-- make image smaller
m = imresize(m,.5); % for fast computation
figure
subplot(2,2,1); imshow(ad,[]); title('Input Image');
% bounding box start
subplot(2,2,2); imshow(ad,[]);
hold on
if(strcmp(I,'a1.jpg')||strcmp(I,'a.jpg'))
rectangle('Position',[40 47 20 22],'EdgeColor','y'); %a1
end;
if(strcmp(I,'b1.jpg')||strcmp(I,'b.jpg'))
rectangle('Position',[61 49 18 20],'EdgeColor','y'); %b1
end;
if(strcmp(I,'c1.jpg')||strcmp(I,'c.jpg'))
rectangle('Position',[35 26 34 40],'EdgeColor','y'); %c1
end;
hold off
title('Locating Bounding box');
% bounding box end
subplot(2,2,3); title('Segmentation');
seg = svm(ad, m, 50); %-- Run segmentation
subplot(2,2,4); imshow(seg); title('Segmented Tumor');
%imwrite(seg,'aaa.jpg');
%comparision
disp('Press C to compare result with Ground truth!');
pause;
[G,root]=uigetfile('*.jpg','select the ground truth image');
gnd=strcat(root,G);
gt=imread(gnd);
size(gt)
size(seg)
pause;
r=imsubtract(seg,gt);
figure;
subplot(1,3,1);
imshow(seg,[ ]);title('Segmented Image');
subplot(1,3,2);
imshow(gnd,[ ]);title('Ground truth');
subplot(1,3,3);
imshow(r,[ ]);title('Diffrence Image');
%%Error Occured%%
Error using imlincombc
Function imlincomb expected its array input arguments (A1, A2, ...) to have the same class.
Error in imlincomb (line 86)
Z = images.internal.imlincombc(ims, scalars, outputClass);
Error in imsubtract (line 62)
0 commentaires
Réponse acceptée
KSSV
le 15 Avr 2019
Check the classes of seg,gt. They should be of same class. Convert them to same class using double or uint8.
0 commentaires
Plus de réponses (1)
Amel Ezzine
le 27 Jan 2020
clear all;
close all;
clc;
x1=imread('coins.png');
x2=imread('rice.png');
x3=imread('printedtext.png');
subplot(2,3,1);
imshow(x1);
subplot(2,3,2);
imshow(x2);
subplot(2,3,3);
imshow(x3);
subplot(2,3,4);
x1_bw=Imbinarize(x1);%ce code ne fonctionee pas a cause de l'ancienne version
imshow(x1_bw);
subplot(2,3,5);
x2_bw=imbinarize(x2,'adaptive');%ce code ne fonctionee pas a cause de l'ancienne version
imshow(x2_bw);
subplot(2,3,6);
x3_bw=imbinarize(x3,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);%ce code ne fonctionee pas a cause de l'ancienne version
imshow(x3_bw);
figure(2);
bw1=im2bw(x1,graythresh(x1));
imshow(bw1);
figure(3);
bw2=im2bw(x2,graythresh(x2));
imshow(bw2);
figure(4);
bw3=im2bw(x3,graythresh(x3));
imshow(bw3);
0 commentaires
Voir également
Catégories
En savoir plus sur Image Preview and Device Configuration dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!