Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

video watermarking

I am doing video watermarking in dct using C++ ..code is as shown below I have mainly two problems 1. I cant see watermark in watermarked video. What should i do so watermark becomes visible..I change scales of DCT coe. of watermark but i did not get the desired result..

    #include"opencv2\highgui\highgui.hpp"
    #include "opencv2\core\core.hpp" 
    #include<opencv2\imgproc\imgproc.hpp>
    #include<iostream>
    #include<math.h>
    using namespace std;
    using namespace cv;
    void wat();
    void ext();
    Mat img,img1;
    int main()
    {
       wat();
       Mat f1,f2,f3,f4;
       VideoCapture cap("C:\\Users\\MAHAVIR\\Desktop\\1.3gp");

       if(!cap.isOpened())
       {
           cout<<"File is Missing"<<endl;   //File is not opened
           return -1;
       }

       double fps=cap.get(CV_CAP_PROP_FPS);
       double cnt=cap.get(7);
       VideoWriter v ("C:/Users/MAHAVIR/Desktop/out.avi",-1,fps,Size(256,256),true); //initialize the VideoWriter object
        if ( !v.isOpened() ) //if not initialize the VideoWriter successfully, exit the program
       {
           cout << "ERROR: Failed to write the video" << endl;
           return -1;
       }


          cout<<"Frame rate is"<<fps<<endl;
          cout<<"Frame Count is"<<cnt<<endl;
          namedWindow("Input Video",CV_WINDOW_AUTOSIZE);

      for(int i=0;i<cnt;i++)
      {
          Mat frame;

          bool f=cap.read(frame);
           if (!f) //if not success, break loop
         {
           cout << "Cannot read the frame from video file" << endl;
           break;
         }
           cvtColor(frame,f1,CV_RGB2GRAY);
           resize(f1,f2,Size(256,256));
           imshow("Input Video",f2);
           f2.convertTo(f2,CV_32F);
           dct(f2,f2,0);
           f2.copyTo(f3);

           for(int m=0;m<2;m++)
           {
               for(int n=0;n<2;n++)
               {
                   float p,q,r;
                   p=f2.at<float>(m,n);
                    //cout<<"Val"<<p<<endl;
                   q=img1.at<float>(m,n);
                   //cout<<"\tVal"<<q<<endl;
                   r=p+q;
                   //cout<<"\t\tVal"<<r<<endl;
                   f3.at<float>(m,n)=r;
               }
           }

            idct(f3,f3);
            f3.convertTo(f3,CV_8U); 
            v.write(f3);
            imshow("Watermarked Video",f3);
            waitKey(10);
      }
      waitKey(10);
      ext();
      cvDestroyWindow("Input Video");
      cvDestroyWindow("WaterMarked Video");
      return 0;  
    }

    void wat()
    {
        img=imread("C:\\Users\\MAHAVIR\\Documents\\MATLAB\\host image.jpg",CV_LOAD_IMAGE_UNCHANGED);
        cvtColor(img,img,CV_RGB2GRAY);
        if (img.empty()) //check whether the image is loaded or not
        {
            cout << "Error : Image cannot be loaded..!!" << endl;
              //system("pause"); //wait for a key press
        }
        else
        {
         //img.resize(img1,(64,64));
         namedWindow("Watermark", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
         imshow("Watermark", img); //display the image which is stored in the 'img' in the "MyWindow" window
         img.convertTo(img,CV_32F,(1.0),(0.0));
         dct(img,img,0);
         img.copyTo(img1);
        }
    }

video watermarking

I am doing video watermarking in dct using C++ ..code is as shown below I have mainly two problems 1. havefollowing problem I cant see watermark in watermarked video. What should i do so watermark becomes visible..I change scales of DCT coe. of watermark but i did not get the desired result..

    #include"opencv2\highgui\highgui.hpp"
    #include "opencv2\core\core.hpp" 
    #include<opencv2\imgproc\imgproc.hpp>
    #include<iostream>
    #include<math.h>
    using namespace std;
    using namespace cv;
    void wat();
    void ext();
    Mat img,img1;
    int main()
    {
       wat();
       Mat f1,f2,f3,f4;
       VideoCapture cap("C:\\Users\\MAHAVIR\\Desktop\\1.3gp");

       if(!cap.isOpened())
       {
           cout<<"File is Missing"<<endl;   //File is not opened
           return -1;
       }

       double fps=cap.get(CV_CAP_PROP_FPS);
       double cnt=cap.get(7);
       VideoWriter v ("C:/Users/MAHAVIR/Desktop/out.avi",-1,fps,Size(256,256),true); //initialize the VideoWriter object
        if ( !v.isOpened() ) //if not initialize the VideoWriter successfully, exit the program
       {
           cout << "ERROR: Failed to write the video" << endl;
           return -1;
       }


          cout<<"Frame rate is"<<fps<<endl;
          cout<<"Frame Count is"<<cnt<<endl;
          namedWindow("Input Video",CV_WINDOW_AUTOSIZE);

      for(int i=0;i<cnt;i++)
      {
          Mat frame;

          bool f=cap.read(frame);
           if (!f) //if not success, break loop
         {
           cout << "Cannot read the frame from video file" << endl;
           break;
         }
           cvtColor(frame,f1,CV_RGB2GRAY);
           resize(f1,f2,Size(256,256));
           imshow("Input Video",f2);
           f2.convertTo(f2,CV_32F);
           dct(f2,f2,0);
           f2.copyTo(f3);

           for(int m=0;m<2;m++)
           {
               for(int n=0;n<2;n++)
               {
                   float p,q,r;
                   p=f2.at<float>(m,n);
                    //cout<<"Val"<<p<<endl;
                   q=img1.at<float>(m,n);
                   //cout<<"\tVal"<<q<<endl;
                   r=p+q;
                   //cout<<"\t\tVal"<<r<<endl;
                   f3.at<float>(m,n)=r;
               }
           }

            idct(f3,f3);
            f3.convertTo(f3,CV_8U); 
            v.write(f3);
            imshow("Watermarked Video",f3);
            waitKey(10);
      }
      waitKey(10);
      ext();
      cvDestroyWindow("Input Video");
      cvDestroyWindow("WaterMarked Video");
      return 0;  
    }

    void wat()
    {
        img=imread("C:\\Users\\MAHAVIR\\Documents\\MATLAB\\host image.jpg",CV_LOAD_IMAGE_UNCHANGED);
        cvtColor(img,img,CV_RGB2GRAY);
        if (img.empty()) //check whether the image is loaded or not
        {
            cout << "Error : Image cannot be loaded..!!" << endl;
              //system("pause"); //wait for a key press
        }
        else
        {
         //img.resize(img1,(64,64));
         namedWindow("Watermark", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
         imshow("Watermark", img); //display the image which is stored in the 'img' in the "MyWindow" window
         img.convertTo(img,CV_32F,(1.0),(0.0));
         dct(img,img,0);
         img.copyTo(img1);
        }
    }