How to fix this error if my image is not two dimensional?
22 ビュー (過去 30 日間)
表示 古いコメント
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 件のコメント
採用された回答
Image Analyst
2021 年 11 月 23 日
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 件のコメント
Image Analyst
2021 年 11 月 25 日
That will solve the error you had, so could you click the "Accept this answer" link for my Answer? Thanks in advance.
その他の回答 (1 件)
Yusuf Suer Erdem
2021 年 11 月 23 日
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)')
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!