Borrar filtros
Borrar filtros

How to fix this error if my image is not two dimensional?

9 visualizaciones (últimos 30 días)
Atifah Samuri
Atifah Samuri el 23 de Nov. de 2021
Respondida: Dilla el 8 de Jul. de 2024 a las 7:45
handclah = imread('hand2.jpg');
handclahe = adapthisteq(handclah, 'clipLimit', 0.02, 'Distribution', 'rayleigh');
figure, imshow (handclah);
figure, imshow (handclahe);
The error is shown below:
Error using adapthisteq
Expected input number 1, I, to be two-dimensional.
Error in adapthisteq>parseInputs (line 416)
validateattributes(I, {'uint8', 'uint16', 'double', 'int16', 'single'}, ...
Error in adapthisteq (line 155)
noPadRect, distribution, alpha, int16ClassChange] = parseInputs(varargin{:});

Respuesta aceptada

Image Analyst
Image Analyst el 23 de Nov. de 2021
You're using it on a color image and you can't do that. It needs a gray scale image. To fix:
handclah = imread('hand2.jpg');
[rows, columns, numberOfColorChannels] = size(handclah)
if numberOfColorChannels == 3
% If it's color, convert it to gray scale.
handclah = rgb2gray(handclah);
end
handclahe = adapthisteq(handclah, 'clipLimit', 0.02, 'Distribution', 'rayleigh');
subplot(2, 1, 1);
imshow (handclah);
subplot(2, 1, 2);
imshow (handclahe);
  5 comentarios
Atifah Samuri
Atifah Samuri el 25 de Nov. de 2021
I see. Thank you sir.
Image Analyst
Image Analyst el 25 de Nov. de 2021
That will solve the error you had, so could you click the "Accept this answer" link for my Answer? Thanks in advance.

Iniciar sesión para comentar.

Más respuestas (2)

Yusuf Suer Erdem
Yusuf Suer Erdem el 23 de Nov. de 2021
Hello, I used these codes below and it worked for me. Could you try it too? I only used .tif format image instead of .jpg image. I upload my image for you too.
clc; clear; close all;
I = imread('tire.tif');
J = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh');
imshowpair(I,J,'montage');
title('Original Image (left) and Contrast Enhanced Image (right)')

Dilla
Dilla el 8 de Jul. de 2024 a las 7:45
clc; clear; close all;
I = imread('pout.tif');
figure, imshow(I);
figure, imhist(I);
J = imadjust(I);
figure, imshow(J);
figure, imhist(J);
K = imadjust(I,[0.3 0.6],[0 0.3]);
figure, imshow(K);
figure, imhist(K);
L = imadjust(I,[0.3 0.6],[0.6 1]);
figure, imshow(L);
figure, imhist(L);
I use this code on jpg images, why doesn't it work?

Etiquetas

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by