How to fix this error if my image is not two dimensional?
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
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{:});
0 Commenti
Risposta accettata
  Image Analyst
      
      
 il 23 Nov 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 Commenti
  Image Analyst
      
      
 il 25 Nov 2021
				That will solve the error you had, so could you click the "Accept this answer" link for my Answer?  Thanks in advance.
Più risposte (2)
  Yusuf Suer Erdem
      
 il 23 Nov 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
 il 8 Lug 2024
        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?
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



