Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. void ProcessImage::changeColors(Mat src, Mat &dst, int white, int black) {
  2.                 //funkcja do rozciągania histogramu na podstawie wybranych na obrazie dwóch punktów:
  3.                 //plamy bielaczej (white) i zdrowej skóry (black)
  4.     cvtColor(src, src, COLOR_BGR2GRAY); //zamiana obrazu na czarnobiały
  5.     equalizeHist(src, dst); //funkcja z biblioteki openCV do porównania
  6.     namedWindow("equ", WINDOW_NORMAL);
  7.     Image::displayImage(dst, "equ");
  8.  
  9.     for (int i = 0; i < src.cols; i++) //funkcja autorska
  10.         for (int j = 0; j < src.rows; j++)
  11.         {
  12.             if (src.at<uchar>(j, i) < black)
  13.             {
  14.                 dst.at<uchar>(j, i) = 0;
  15.             }
  16.             else if (src.at<uchar>(j, i) > white)
  17.             {
  18.                 dst.at<uchar>(j, i) = 255;
  19.             }
  20.             else
  21.             {
  22.                 dst.at<uchar>(j, i) = ((src.at<uchar>(j, i) - black) / (white - black)) * 255;
  23.             }
  24.         }
  25.     namedWindow("contrast", WINDOW_NORMAL);
  26.     Image::displayImage(dst, "contrast");
  27.     return;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement