Histogram equalization is a method in image processing that allows to adjust the contrast of an image using histogram. Histogram equalization transforms pixel intensity values so that the histogram of the output image is more distributed through the entire range of values.
OpenCV provides the equalizeHist
function that allows to apply histogram equalization to a grayscale image.
import cv2
img = cv2.imread('test.jpg')
grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
equImg = cv2.equalizeHist(grayImg)
cv2.imshow('Original image', grayImg)
cv2.imshow('Equalized image', equImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("test.jpg");
Mat grayImg;
cvtColor(img, grayImg, COLOR_BGR2GRAY);
Mat equImg;
equalizeHist(grayImg, equImg);
imshow("Original image", grayImg);
imshow("Equalized image", equImg);
waitKey(0);
destroyAllWindows();
return 0;
}
#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp>
using namespace cv;
int main()
{
Mat img = imread("test.jpg");
cuda::GpuMat gpuImg(img);
cuda::cvtColor(gpuImg, gpuImg, COLOR_RGB2GRAY);
Mat grayImg(gpuImg);
cuda::equalizeHist(gpuImg, gpuImg);
Mat equImg(gpuImg);
imshow("Original image", grayImg);
imshow("Equalized image", equImg);
waitKey(0);
destroyAllWindows();
return 0;
}
package app;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class Main
{
static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
public static void main(String[] args)
{
Mat img = Imgcodecs.imread("test.jpg");
Mat grayImg = new Mat();
Imgproc.cvtColor(img, grayImg, Imgproc.COLOR_BGR2GRAY);
Mat equImg = new Mat();
Imgproc.equalizeHist(grayImg, equImg);
HighGui.imshow("Original image", grayImg);
HighGui.imshow("Equalized image", equImg);
HighGui.waitKey(0);
HighGui.destroyAllWindows();
System.exit(0);
}
}
Result:
Leave a Comment
Cancel reply