How to enchant image using histeq?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nanda Sulthan Estupratama
el 24 de Jun. de 2018
Comentada: Nanda Sulthan Estupratama
el 24 de Jun. de 2018
I have a code :
image=imread('geranium.jpg');
figure
imshow(image)
imR1=image(:,:,1);
imG1=image(:,:,2);
imB1=image(:,:,3);
gray = uint8(0.299*double(imR1) + 0.587*double(imG1) + 0.114*double(imB1));
%opening operation
di = strel('line',50,100);
dilate = imdilate(gray,di);
er = strel('line',50,100);
erode = imerode(dilate,er);
%difference image between opening operation and grayscale
difference_image = double(gray) - double(erode);
figure; % Open up another figure window.
subplot (2,2,1)
imshow(dilate)
subplot (2,2,2)
imshow(erode)
subplot(2,2,3)
imshow(difference_image, []); % Display the difference image.
the difference_image's variable result is

what should I do to enchant the difference_image into this figure below?

I have tried histeq, but the result is all black
0 comentarios
Respuesta aceptada
Image Analyst
el 24 de Jun. de 2018
It's a BAD idea to call your image variable "image" because that is the name of a built-in function.
Simply linearly stretch the image with mat2gray():
outputImage = uint8(255 * mat2gray(grayImage));
Histogram equalization gives crummy, unnatural looking images and I always avoid it unless forcefully asked by students who need it for their homework. In the real world I don't think any good image analysts use it because (1) it's not necessary, and (2) it gives lousy looking images.
3 comentarios
Image Analyst
el 24 de Jun. de 2018
You can sharpen with a convolution
kernel = [-1,-1,-1; -1,17,-1; -1,-1,-1] / 9;
sharpImage = conv2(double(grayImage), kernel, 'same');
imshow(sharpImage, []);
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
