Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<opencv2/opencv.hpp>
- #include<iostream>
- using namespace std;
- using namespace cv;
- static int img_height = 822;//822
- static int img_width = 616;//616
- int main()
- {
- TickMeter tm_2;
- TickMeter tm_3;
- tm_2.reset();
- tm_3.reset();
- Mat img_master = imread("Master2.jpg", 0);
- //namedWindow("I", WINDOW_AUTOSIZE);
- Mat roi;
- Rect window;
- Mat img_filter = img_master.clone();
- Mat img_blur;
- int summ = 0;
- double sigma = 5;
- int filter_value = 0;
- double gauss_value[21][21];
- double dif = 0;
- double dif1 = 0;
- double procent;
- tm_3.start();
- blur(img_master, img_blur, Size(3, 3));
- tm_3.stop();
- for (int i = -10; i < 11; i++)
- {
- for (int j = -10; j < 11; j++)
- {
- gauss_value[i][j] =100000* (-(i * exp(-(i * i) / (2 * sigma * sigma))) / (3.14 * sigma * sigma)) * (-(j * exp(-(j * j) / (2 * sigma * sigma))) / (3.14 * sigma * sigma));
- //gauss_value[i][j] = (-(j * exp(-(j * j) / (2 * sigma * sigma))) / (3.14 * sigma * sigma));
- cout << gauss_value[i][j] << " | " << endl;
- //waitKey(5);
- }
- //cout << endl;
- }
- tm_2.start();
- for (int y = 0; y < (img_height - 20); y++)
- {
- for (int x = 0; x < (img_width - 20); x++)
- {
- Rect window(x, y, 21, 21);
- roi = img_master(window);
- for (int i = 0; i < 21; i++)
- {
- for (int j = 0; j < 21; j++)
- {
- summ += (int)(roi.at<uchar>(i, j)* gauss_value[i][j]);
- }
- }
- filter_value = summ / 441;
- img_filter.at<uchar>(Point(x + 10, y + 10)) = (uchar)filter_value;
- //cout << filter_value << endl;
- //waitKey(5);
- summ = 0;
- }
- }
- tm_2.stop();
- procent = dif1 / (img_height * img_width);
- cout << "timer_3 = " << tm_3.getTimeSec() << endl;
- cout << "timer_2 = " << tm_2.getTimeSec() << endl;
- cout << "dif = " << procent << endl;
- imshow("I", img_master);
- imshow("II", img_filter);
- //imshow("III", img_blur);
- waitKey(0);
- return 0;
- }
- // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
- // Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
- // Советы по началу работы
- // 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
- // 2. В окне Team Explorer можно подключиться к системе управления версиями.
- // 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
- // 4. В окне "Список ошибок" можно просматривать ошибки.
- // 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
- // 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement