Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Thresh
- {
- double thMin = 0;
- double thMax = 255;
- double resolution = 1;
- int minTbV = 0;
- int maxTbV = 0;
- double Range()
- {return thMax - thMin;}
- int Ticks()
- {return cvRound(Range()/resolution);};
- double minValue()
- {return thMin + minTbV * Range() / Ticks();}
- double maxValue()
- {return thMin + maxTbV * Range() / Ticks();}
- //int tbValue = cvRound(Ticks() / 2.0); // start at 50%
- };
- void onTrackBar(int, void* userData)
- {
- Thresh *pdata = (Thresh*)userData;
- double minTh = pdata->minValue();
- double maxTh = pdata->maxValue();
- std::cout << "MIN threshold:" << minTh << endl;
- std::cout << "MAX threshold:" << maxTh << endl;
- }
- Mat open_images(int i)
- {
- string fullfileName;
- stringstream ss;
- Mat image;
- ss << "C:/Users/Filip/Desktop/DATA/test" << i << ".jpg" << endl;
- ss >> fullfileName;
- image = cv::imread(fullfileName, 1);
- return image;
- }
- void changing_thresh()
- {
- Thresh data;
- static const char * winName = "MyWindow";
- Mat IMAGE = cv::imread("C:/Users/Filip/Desktop/Frame.jpg", 1);
- Mat img;
- int i = 1;
- while (1)
- {
- if (waitKey(30) == 27)
- {
- i++;
- IMAGE = open_images(i);
- }
- cv::namedWindow(winName);
- cv::createTrackbar("MinThresh", winName, &(data.minTbV), data.Ticks(), onTrackBar, &data);
- cv::createTrackbar("MaxThresh", winName, &(data.maxTbV), data.Ticks(), onTrackBar, &data);
- onTrackBar(0, &data);
- img = edgedetect(IMAGE, data.minTbV, data.maxTbV);
- imshow("MyWindow", img);
- char c = (char)waitKey(25);
- }
- cv::waitKey(1);
- }
- int main()
- {
- changing_thresh();
- waitKey();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement