如何在Matlab中使用imhistmatch?

如何在Matlab中使用imhistmatch?,matlab,Matlab,我正在尝试用matlab函数imhistmatch实现。 所以我使用下面的方法 A= imread('example1.jpg') B= imread('example2.jpg') C= imhistmatch(A,B) 但是有这样的问题。 ?? 类型为“uint8”的输入参数的未定义函数或方法“imhistmatch” 那我该怎么解决呢?我不确定你的问题。您正在尝试实现imhistmatch吗? 那么可能是你的函数在错误的文件夹中,或者你的函数名有输入错误。 使用 以确保matlab能够找

我正在尝试用matlab函数imhistmatch实现。 所以我使用下面的方法

A= imread('example1.jpg')
B= imread('example2.jpg')
C= imhistmatch(A,B)
但是有这样的问题。 ?? 类型为“uint8”的输入参数的未定义函数或方法“imhistmatch”


那我该怎么解决呢?

我不确定你的问题。您正在尝试实现imhistmatch吗? 那么可能是你的函数在错误的文件夹中,或者你的函数名有输入错误。 使用

以确保matlab能够找到您实现的函数

但您可能希望使用图像处理工具箱提供的函数imhistmatch。那么,我猜你没有图像处理工具箱。 试一试

并检查输出。您应该找到以下几行:

MATLAB                                                Version X.X        (XXXXX)
Image Processing Toolbox                              Version X.X        (XXXXX)
如果没有,那么您可能想购买图像处理工具箱,获得评估版本,或者尝试octave

在我的电脑上,以下功能可以正常工作:

imhistmatch(ones(10),ones(10))
imhistmatch(ones(10,'uint8'),ones(10,'uint8'))
但是当我打字的时候

imhistmatch(ones(10,'int8'),ones(10,'int8'))
我得到一个错误:

Error using imhistmatch
Expected input number 1, A, to be one of these types:

uint8, uint16, double, int16, single

Instead its type was int8.
...
因此,如果这是一个类型问题,您将看到另一个错误


您的错误是由于没有正确的函数imhistmatch造成的。

imhistmatch
是图像处理工具箱的一部分,它可用吗?您使用的是什么版本
imhistmatch
是在版本2012b中引入的。如果您有工具箱,则很可能有另一个名为
imhistmatch.m
的.m文件。将该文件的名称更改为其他名称else@AnderBigurithanjs先生,但我认为这是我没有向uint强制转换的情况。@kaji:matlab的哪个版本以及
哪个imhistmatch
返回了什么?对不起,我给了你一些误解,我只是修改了我的问题。然后检查工具箱我不确定你的答案。这个版本怎么办?我想这只是铸造的问题。但我不确定。I2=im2uint8(..)。我应该使用转换函数吗?当我键入版本时,我发现MATLAB版本X.X(XXXXX)图像处理工具箱版本X.X(XXXXX)。
imhistmatch(ones(10,'int8'),ones(10,'int8'))
Error using imhistmatch
Expected input number 1, A, to be one of these types:

uint8, uint16, double, int16, single

Instead its type was int8.
...