help me to solve error in integer coding

1 回表示 (過去 30 日間)
izyan hanum
izyan hanum 2015 年 4 月 25 日
コメント済み: Geoff Hayes 2015 年 4 月 25 日
i dont know why have error in this coding. please help me to solve it
Error using ./ Integers can only be combined with integers of the same class, or scalar doubles.
Error in try1 (line 21) imgN=double(img-min(img(:)))/(max(img(:)-min(img(:))));
%# read image
img = imread('C:\Users\User\Pictures\N2.jpg');
%# normalize to 0...1
imgN = double(img-min(img(:)))/(max(img(:)-min(img(:))));
th1=graythresh(imgN);
th2 = graythresh(imgN(imgN>th1));
cellMsk = imgN>th1;
nucMsk = imgN>th2;
figure,imshow(cellMsk+nucMsk,[])

回答 (1 件)

Geoff Hayes
Geoff Hayes 2015 年 4 月 25 日
izayn - the problem in the line
imgN = double(img-min(img(:)))/(max(img(:)-min(img(:))));
is that the
double(img-min(img(:)))
is a multi-dimensional array (the same size as your matrix) and is of class/type double. The
(max(img(:)-min(img(:))))
will be a scalar of class/type that is the same as your image. I get the same error if I read an image where each element is a 8-bit unsigned integer. To get around this problem, just cast the right half of the equation to be of double type too. Your equation then becomes
imgN = double(img-min(img(:)))/double(max(img(:)-min(img(:))));
Try the above and see what happens!
  3 件のコメント
izyan hanum
izyan hanum 2015 年 4 月 25 日
picture below
Geoff Hayes
Geoff Hayes 2015 年 4 月 25 日
izayn - if you are observing an error, please post it.

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

Community Treasure Hunt

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

Start Hunting!

Translated by