image - Histogram equalization help in MATLAB -
my code shown below:
g= histeq(imread('f:\thesis\images\image1.tif')); figure,imshow(g); the error message got following , i'm not sure why appearing:
error using histeq expected input number 1, i, two-dimensional. error in histeq (line 68) validateattributes(a,{'uint8','uint16','double','int16','single'}, ... error in testfile1 (line 8) g= histeq(imread('f:\thesis\images\image1.tif'));
your image colour. histeq works on grayscale images. there 3 options available depending on want do. can either convert image grayscale, can histogram equalize each channel individually or perceptually better convert image hsv colour space, histogram equalize v or value component, convert rgb. tend prefer last option colour images. therefore, 1 method enhanced grayscale image, , other 2 enhanced colour image.
option #1 - convert grayscale equalize
g = imread('f:\thesis\images\image1.tif'); g = histeq(rgb2gray(g)); figure; imshow(g); use rgb2gray convert image grayscale, equalize image.
option #2 - equalize each channel individually
g = imread('f:\thesis\images\image1.tif'); = 1 : size(g, 3) g(:,:,i) = histeq(g(:,:,i)); end figure; imshow(g); loop through each channel , equalize.
option #3 - convert hsv, histogram equalize v channel convert back
g = imread('f:\thesis\images\images1.tif'); gh = rgb2hsv(g); gh(:,:,3) = histeq(gh(:,:,3)); g = im2uint8(hsv2rgb(gh)); figure; imshow(g); use rgb2hsv function convert colour image hsv. use histogram equalization on v or value channel, convert hsv rgb hsv2rgb. note output of hsv2rgb double type image , assuming original input image uint8, use im2uint8 function convert double uint8.
Comments
Post a Comment