Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <opencv2/imgproc/imgproc.hpp>
- #include <opencv2/opencv.hpp>
- #include <opencv2/highgui/highgui_c.h>
- #include <opencv2\opencv.hpp>
- using namespace cv;
- void conv2(Mat src, int kernel_size)
- {
- Mat blur, kernel;
- //Creo una matriz gaussiana
- kernel = (Mat_<double>(3, 3) << 0.0102059, 0.115349, 0.135784, 0.1224548, 0.123354, 0.1665548, 0.155474, 0.1235547, 0.221468);
- //kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size); //Estoy creando una matriz, este caso 1/100
- /// Apply filter
- filter2D(src, blur, -1, kernel, Point(-1, -1), 0, BORDER_DEFAULT);
- imshow("filter2D", blur);
- }
- void conv3(Mat src, int Gaussian_kernel)
- {
- Mat blur;
- GaussianBlur(src, blur, Size(Gaussian_kernel, Gaussian_kernel), 0, 0);
- imshow("GaussianFilter", blur);
- }
- int main(int argc, char** argv)
- {
- namedWindow("window", CV_WINDOW_AUTOSIZE);
- //Cargamos el video desde un archivo
- VideoCapture vc("../data/Jordan.mp4");
- Mat frame;
- //Verificamos que el video se ha podido cargar
- if (!vc.isOpened()) return -1;
- //Obtenemos cuadro por segundo
- double fps = vc.get(CV_CAP_PROP_FPS);
- //Calculamos tiempo de espera entre cada imagen a mostrar
- int delay = 1000 / fps;
- // Es para aumentar el tamaño de blur
- while (true)
- {
- //Cargar el primer cuadro en frame
- vc.read(frame);
- imshow("window", frame);
- Mat src = frame;
- //o waitKey(); para ir con cada tecla.
- conv2(src, 7);
- conv3(src, 3);
- //la función waitKey() espera a indefinidamente a que se presione una tecla,
- waitKey(10);
- if (waitKey(delay) == 27) break;
- }
- return 0;
- destroyWindow("window");
- }
Add Comment
Please, Sign In to add comment