Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void histogramEqualization(Mat src){
- int height = src.rows;
- int width = src.cols;
- int M = height*width;
- int* h = computeHistogram(src);
- Mat dest = src.clone();
- int L = 255;
- float* p = (float*) malloc(256 * sizeof(float));
- float* pc = (float*) malloc(256 * sizeof(float));
- for(int i = 0; i < 256; i++){
- p[i] = h[i]/((float)M);
- for(int k = 0; k <= i; k++){
- pc[i] += p[k];
- }
- }
- for(int i = 0; i < height; i++){
- for(int j = 0; j < width; j++){
- int gout = L*pc[src.at<unsigned char>(i, j)];
- dest.at<unsigned char>(i, j) = gout;
- }
- }
- imshow("src", src);
- imshow("dest", dest);
- showHistogram("srcHist", computeHistogram(src), 256, 500);
- showHistogram("destHist", computeHistogram(dest), 256, 500);
- waitKey();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement