Using post classification confusion matrix

Pls I need to perform confusion matrix, but I keep getting;
Error using confusion (line 43)
Targets and outputs have different dimensions.
The code I used is;
[c,cm,ind,per] = confusion(BW_1,new_image{1})
where;
BW_1=roipoly(my_image); %Trained class no. 1
BW_1 gives a (2592x4608 logical) variable value in the Workspace part
<2592x4608 logical>
new_image
new_image =
Columns 1 through 4
[7776x4608 uint8] [7776x4608 uint8] [7776x4608 uint8] [7776x4608 uint8]
Columns 5 through 6
[7776x4608 uint8] [7776x4608 uint8]
Kmeans Segmentation code used
he= imread('C:\Users\ISHOLA\Desktop\1.jpg'); %Reading image which is not gray
cform = makecform('srgb2lab');
lab_he = applycform(he,cform);
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
disp(nrows);
disp(ncols);
ab = reshape(ab,nrows*ncols,2);
nColors = 6;
% repeat the clustering 3 times to avoid local minima
[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','replicates',6);
pixel_labels = reshape(cluster_idx,nrows,ncols);
%figure, imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 3]);
for k = 1:nColors
color = he;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
new_image = cellfun(@(x)reshape(x,2592*3,4608),segmented_images,'UniformOutput',false)

3 件のコメント

Star Strider
Star Strider 2014 年 9 月 19 日
Post the code you are using to do the classification.
bayoishola20
bayoishola20 2014 年 9 月 20 日
okay!Thank you.
U r right, but below is the segmentation code I had used.
he= imread('C:\Users\ISHOLA\Desktop\1.jpg'); %Reading image which is not gray
cform = makecform('srgb2lab');
lab_he = applycform(he,cform);
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
disp(nrows);
disp(ncols);
ab = reshape(ab,nrows*ncols,2);
nColors = 6;
% repeat the clustering 3 times to avoid local minima
[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','replicates',6);
pixel_labels = reshape(cluster_idx,nrows,ncols);
%figure, imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 3]);
for k = 1:nColors
color = he;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
new_image = cellfun(@(x)reshape(x,2592*3,4608),segmented_images,'UniformOutput',false)
bayoishola20
bayoishola20 2014 年 9 月 22 日
m-file for segmentation

サインインしてコメントする。

 採用された回答

Mohammad Abouali
Mohammad Abouali 2014 年 9 月 19 日

0 投票

Well, the answer is right in front of you. BW_1 has 2592x4608=11943936 elements while new_image{1} has 7776x4608=35831808 elements
confusion requires both of them have same number of elements.
since 7776/2592=3, it is possible that you made some mistake and all 3 color bands are getting next to each other on first dimension.If your image looks black and white, it is still possible that it has three color bands; but the colors are set in such a way that it looks gray.

1 件のコメント

bayoishola20
bayoishola20 2014 年 9 月 20 日
U r right, but below is the segmentation code I had used.
he= imread('C:\Users\ISHOLA\Desktop\1.jpg'); %Reading image which is not gray
cform = makecform('srgb2lab');
lab_he = applycform(he,cform);
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
disp(nrows);
disp(ncols);
ab = reshape(ab,nrows*ncols,2);
nColors = 6;
% repeat the clustering 3 times to avoid local minima
[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','replicates',6);
pixel_labels = reshape(cluster_idx,nrows,ncols);
%figure, imshow(pixel_labels,[]), title('image labeled by cluster index');
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 3]);
for k = 1:nColors
color = he;
color(rgb_label ~= k) = 0;
segmented_images{k} = color;
end
new_image = cellfun(@(x)reshape(x,2592*3,4608),segmented_images,'UniformOutput',false)

サインインしてコメントする。

その他の回答 (1 件)

bayoishola20
bayoishola20 2014 年 9 月 22 日

0 投票

pls this is the m-file.

カテゴリ

ヘルプ センター および File ExchangeStartup and Shutdown についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by