hi every body. I am trying to use nmi.m which is attached below and downloaded from mathworks to calculate normalized mutual information between to images.
x=rgb2gray(imread('a.jpg'));
y=rgb2gray(imread('b.jpg'));
z = nmi(x, y);
but i have this error:
Error using sparse
Index into matrix must be an integer.
Error in nmi (line 19)
Mx = sparse(idx,x,1,n,k,n);
could anyone solve this error for me?

6 件のコメント

Walter Roberson
Walter Roberson 2020 年 4 月 4 日
After you create x and y, please show class(x) and class(y), and also min(unique(diff([x(:);y(:)])))
talayeh ghodsi
talayeh ghodsi 2020 年 4 月 4 日
hello sir, thanks for your respond. you mean this?
x=rgb2gray(imread('a.jpg'));
y=rgb2gray(imread('b.jpg'));
class(x)
class(y)
min(unique(diff([x(:);y(:)])))
z = nmi(x, y);
the class of x and y is uint8
Walter Roberson
Walter Roberson 2020 年 4 月 4 日
What showed up for
min(unique(diff([x(:);y(:)])))
?
Also please show min(x(:)), max(x(:))
talayeh ghodsi
talayeh ghodsi 2020 年 4 月 4 日
> min(unique(diff([x(:);y(:)])))
ans =
uint8
0
> min(x(:)), max(x(:))
ans =
uint8
0
ans =
uint8
255
Walter Roberson
Walter Roberson 2020 年 4 月 4 日
Replace
x = x-l+1;
y = y-l+1;
with
x = double(x-l+1);
y = double(y-l+1);
talayeh ghodsi
talayeh ghodsi 2020 年 4 月 4 日
thanks sir it works well

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

回答 (0 件)

カテゴリ

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

質問済み:

2020 年 4 月 4 日

コメント済み:

2020 年 4 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by