Skip to main content

OpenCV : Show Video and Picture in CLion

1. Show Video by using VideoCapture



int main() {
    VideoCapture capture("./res/chat.avi");
    Mat frame;

    if (!capture.isOpened()){
        printf("AVI file can not open\n");
        return 0;
    }

    namedWindow("w", 0); // 0 : resizable, 1 : fit autosize    while(1){
        capture >> frame;
        if (frame.empty()) break;  // when arrive at the end of the video 
        Sobel(frame, frame, frame.depth(), 1, 0); // make color reversal         
        imshow("w", frame);
        if (waitKey(10) == 27) break; // 27 is esc key code number    }
    return 0;
}


 2. Read and Show Picture

int main() {
    Mat img = imread("./res/mh.jpg");
    namedWindow("win", 0);
    imshow("win", img);
    waitKey(0);
    return 0;
}

Warning! : If you use CLion IDE, you should set proper working directory.























Comments

Popular posts from this blog

OpenGL SL - Mosaic effect

Mosaic effect is similar to lowering the resolution of an image. Let's see example image. And full source code likes below. void mainImage( out vec4 fragColor, in vec2 fragCoord ){     // Normalized pixel coordinates (from 0 to 1)     vec2 uv = fragCoord/iResolution.xy;     if (uv.x > 0.7 && uv.y < 0.4 ){          //left bottoom small image         uv.x -= 0.6 ;         uv *= 2.0 ;         fragColor = texture (iChannel0, uv);         fragColor += vec4 ( 0.2 );         return ;     }     //mosaic effect     uv = uv * 30.0 ;     vec2 uv = floor (uv);     uv = uv/ 30.0 ;     fragColor = texture (iChannel0, uv); } The key function of mosaic effect is "floor" If you want to make it sharper, multiply uv by ...

OpenGL SL - Translate, roate, and scale

Translate, rotate and scale are most basic element of image effect. If you didn't understand how make effect at each pixel, please read again before post "Show Video and Image" . 1. Translate Translation means each pixel move parallel on the x, y-axis. In other words, if you want to translate 0.25 on the x-axis, a pixel should point to a distance of -0.25 from the original. Translate ex) void mainImage( out vec4 fragColor, in vec2 fragCoord ){     vec2 uv = fragCoord/iResolution.xy;     if (uv.x < 0.5 ){         // translate to x ( -0.25 )         uv.x += 0.25 ;     } else {         // translate to x ( +0.25 )         uv.x -= 0.25 ;     }     fragColor = texture (iChannel0, uv); } result) 2. Scale Scale also has a  similar concept to parallel translation. If you want to zoom in twice, each pixel s...

OpenCV : Image synthesis (ROI, Mask, Binary)

Today we will make Image synthesis by using ROI, Masking, binarization. The full code is like that. #include <iostream> #include "opencv2/opencv.hpp" using namespace std ; using namespace cv ; int main () { Mat me = imread( "./res/pic/mh.jpg" ); Mat animal = imread( "./res/pic/animal_head.png" ); Mat animalGray ; Mat mask_ani ; Mat mask_ani_inv ; imshow( "me origin" , me ); imshow( "animal" , animal ); cvtColor( animal , animalGray , CV_BGR2GRAY); // color to black and white threshold( animalGray , mask_ani , 10 , 255 , 0 ); // make binary bitwise_not( mask_ani , mask_ani_inv ); imshow( "mask ani inv" , mask_ani_inv ); imshow( "mask ani" , mask_ani ); Mat imgRoi ; imgRoi = me ( Rect ( 50 , 50 , animal . cols , animal . rows ) ) ; imshow( "imgRoi" , imgRoi ); Mat me_back ; Mat ani_for ; bitwise_and( animal ...