Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void latire_ingustare_histograma()
- {
- char fname[MAX_PATH];
- openFileDlg(fname);
- Mat img = imread(fname, CV_LOAD_IMAGE_GRAYSCALE);
- int *a = histogramaaux(img);
- Mat cont = img.clone();
- int gOUTmin, gOUTmax;
- printf("Constrast:\n");
- printf("goutmin = ");
- scanf("%d", &gOUTmin);
- printf("goutmax = ");
- scanf("%d", &gOUTmax);
- int imax = 0;
- int imin = 255;
- for (int i = 0; i < 256; i++){
- if (a[i] != 0){
- imin = i;
- break;
- }
- }
- for (int i = 255; i >0; i--){
- if (a[i] != 0){
- imax = i;
- break;
- }
- }
- Mat contrast = img.clone();
- float factor = (imax - imin);
- for (int i = 0; i < img.rows; i++)
- for (int j = 0; j < img.cols; j++){
- float aux = gOUTmin + (img.at<uchar>(i, j) - imin)*(gOUTmax - gOUTmin) / factor;
- if (aux > 255)
- aux = 255;
- if (aux < 0)
- aux = 0;
- contrast.at<uchar>(i, j) = (int)aux;
- }
- imshow("src", img);
- imshow("Contrast", contrast);
- waitKey(0);
- }
- void corectia_gamma()
- {
- char fname[MAX_PATH];
- openFileDlg(fname);
- Mat img = imread(fname, CV_LOAD_IMAGE_GRAYSCALE);
- int *a = histogramaaux(img);
- Mat gam = img.clone();
- float gamma;
- printf("gamma = ");
- scanf("%f", &gamma);
- for (int i = 0; i < img.rows; i++)
- for (int j = 0; j < img.cols; j++){
- float aux = pow((float)img.at<uchar>(i, j) / 255, gamma) * 255; //l=255!!!!
- if (aux > 255)
- aux = 255;
- if (aux < 0)
- aux = 0;
- gam.at<uchar>(i, j) = (int)aux;
- }
- imshow("SRC", img);
- imshow("Corectia gamma", gam);
- waitKey(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement