Hi, I am trying to write a function that takes a tif file as imageIn, then converts the data type into uint8 and gives out imageOut. the problem is that when I give a file which is not in logical data type format, it gives this error:
Matrix dimensions must agree. Error in Imfunction if class(image) == 'logical'
I dont understand how to fix the code. could someone help me figure it out? here is the code:
function imageOut = Imfunction(imageIn)
image = imread(imageIn);
if class(image) == 'logical'
image = uint8(image) .* uint8(255);
end
imwrite(image,'imageOut');
end

Antworten (1)

Walter Roberson
Walter Roberson am 31 Dez. 2017

0 Stimmen

Use islogical() instead of comparing the class.
If you must compare the class then use strcmp instead of == .
If you must use == then use R2016b or later and
if string(class(image)) == 'logical'

Kategorien

Mehr zu Convert Image Type finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

K.G
am 30 Dez. 2017

Beantwortet:

am 31 Dez. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by