Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ProcessImage::changeColors(Mat src, Mat &dst, int white, int black) {
- //funkcja do rozciągania histogramu na podstawie wybranych na obrazie dwóch punktów:
- //plamy bielaczej (white) i zdrowej skóry (black)
- cvtColor(src, src, COLOR_BGR2GRAY); //zamiana obrazu na czarnobiały
- equalizeHist(src, dst); //funkcja z biblioteki openCV do porównania
- namedWindow("equ", WINDOW_NORMAL);
- Image::displayImage(dst, "equ");
- for (int i = 0; i < src.cols; i++) //funkcja autorska
- for (int j = 0; j < src.rows; j++)
- {
- if (src.at<uchar>(j, i) < black)
- {
- dst.at<uchar>(j, i) = 0;
- }
- else if (src.at<uchar>(j, i) > white)
- {
- dst.at<uchar>(j, i) = 255;
- }
- else
- {
- dst.at<uchar>(j, i) = ((src.at<uchar>(j, i) - black) / (white - black)) * 255;
- }
- }
- namedWindow("contrast", WINDOW_NORMAL);
- Image::displayImage(dst, "contrast");
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement