Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. I want to crop a selected a rectangle area in live video feed and save those area or image in my local drive
Forum Updated to NodeBB v4.3 + New Features

I want to crop a selected a rectangle area in live video feed and save those area or image in my local drive

Scheduled Pinned Locked Moved Unsolved General and Desktop
23 Posts 2 Posters 8.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mrjjM mrjj

    @robotsandi
    Ok if you already can grab images, you simply load it with full path from where you store it
    or simply display it in QLabel ( as pixmap) and use rubberband to grab the area. ( or fixed in code if only needing that)
    Or if you can just stop the video and it still displays last image, then directly on that.

    R Offline
    R Offline
    robotsandi
    wrote on last edited by
    #9

    @mrjj
    yes, i just stop the video and it still displays the last image,
    but how can i directly it

    void MainWindow::on_pushButton_clicked()
    {
    mCamera->setViewfinder(mCameraViewfinder);
    mLayout->addWidget(mCameraViewfinder);
    mLayout->setMargin(0);
    ui->scrollArea->setLayout(mLayout);
    mCamera->start();
    }

    void MainWindow::on_pushButton_2_clicked()
    {
    mCamera->stop();
    }

    R 1 Reply Last reply
    0
    • R robotsandi

      @mrjj
      yes, i just stop the video and it still displays the last image,
      but how can i directly it

      void MainWindow::on_pushButton_clicked()
      {
      mCamera->setViewfinder(mCameraViewfinder);
      mLayout->addWidget(mCameraViewfinder);
      mLayout->setMargin(0);
      ui->scrollArea->setLayout(mLayout);
      mCamera->start();
      }

      void MainWindow::on_pushButton_2_clicked()
      {
      mCamera->stop();
      }

      R Offline
      R Offline
      robotsandi
      wrote on last edited by
      #10

      @mrjj Plese help me.

      mrjjM 1 Reply Last reply
      0
      • R robotsandi

        @mrjj Plese help me.

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #11

        @robotsandi
        well i dont know for sure.
        I think you have to use a
        http://doc.qt.io/qt-5/qcameraimagecapture.html#details
        to get an image.
        But why not just copy from what ever is on screen ?
        Do you also need image first?

        R 1 Reply Last reply
        0
        • mrjjM mrjj

          @robotsandi
          well i dont know for sure.
          I think you have to use a
          http://doc.qt.io/qt-5/qcameraimagecapture.html#details
          to get an image.
          But why not just copy from what ever is on screen ?
          Do you also need image first?

          R Offline
          R Offline
          robotsandi
          wrote on last edited by
          #12

          @mrjj
          mCamera->setCaptureMode(QCameraImageCapture::CaptureToBuffer);
          how to stope image to use this code

          mrjjM 1 Reply Last reply
          0
          • R robotsandi

            @mrjj
            mCamera->setCaptureMode(QCameraImageCapture::CaptureToBuffer);
            how to stope image to use this code

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #13

            Hi
            I think you just connect image capture to it
            imageCapture = new QCameraImageCapture(camera);
            and hook up to
            http://doc.qt.io/qt-5/qcameraimagecapture.html#imageCaptured
            to get signal and image when its ready

            R 1 Reply Last reply
            0
            • mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #14

              Hi
              maybe this sample is good start ?
              http://doc.qt.io/qt-5/qtmultimedia-multimediawidgets-camera-example.html

              It can grab photo.

              1 Reply Last reply
              1
              • mrjjM mrjj

                Hi
                I think you just connect image capture to it
                imageCapture = new QCameraImageCapture(camera);
                and hook up to
                http://doc.qt.io/qt-5/qcameraimagecapture.html#imageCaptured
                to get signal and image when its ready

                R Offline
                R Offline
                robotsandi
                wrote on last edited by
                #15

                @mrjj
                Hi
                I have 4 coordinate (x1, y1, x2, y2)
                (x1, y1) is for press mouse button or (x2, y2) for release mouse button
                how can i fine height and weight.
                please, can you explain me:

                mrjjM 1 Reply Last reply
                0
                • R robotsandi

                  @mrjj
                  Hi
                  I have 4 coordinate (x1, y1, x2, y2)
                  (x1, y1) is for press mouse button or (x2, y2) for release mouse button
                  how can i fine height and weight.
                  please, can you explain me:

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by mrjj
                  #16

                  @robotsandi
                  Well you can just cheat
                  QRect area( x1,y1,x2,y2 ) ;
                  ( or as QPoint if you have that QRect area( p1, p2 ) )
                  then you can just ask it

                  area.width()
                  area.height()

                  else its
                  int w= x2 - x1;
                  int h=y2-y1;

                  R 1 Reply Last reply
                  0
                  • mrjjM mrjj

                    @robotsandi
                    Well you can just cheat
                    QRect area( x1,y1,x2,y2 ) ;
                    ( or as QPoint if you have that QRect area( p1, p2 ) )
                    then you can just ask it

                    area.width()
                    area.height()

                    else its
                    int w= x2 - x1;
                    int h=y2-y1;

                    R Offline
                    R Offline
                    robotsandi
                    wrote on last edited by
                    #17

                    @mrjj
                    How to save image
                    int width = x2-x1;
                    int height = y2-y1;
                    QPixmap original("mCameraImageCapture");
                    //QPixmap cropped = original.copy(rect);
                    QPixmap cropped = original.copy(x1, y1, width, height);

                    R 1 Reply Last reply
                    0
                    • R robotsandi

                      @mrjj
                      How to save image
                      int width = x2-x1;
                      int height = y2-y1;
                      QPixmap original("mCameraImageCapture");
                      //QPixmap cropped = original.copy(rect);
                      QPixmap cropped = original.copy(x1, y1, width, height);

                      R Offline
                      R Offline
                      robotsandi
                      wrote on last edited by
                      #18

                      @robotsandi
                      mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
                      QImageEncoderSettings imageEncoderSettings;
                      imageEncoderSettings.setCodec("imag/jpeg");
                      imageEncoderSettings.setResolution(1600,1200);
                      mCameraImageCapture->setEncodingSettings(imageEncoderSettings);

                      mrjjM 1 Reply Last reply
                      0
                      • R robotsandi

                        @robotsandi
                        mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
                        QImageEncoderSettings imageEncoderSettings;
                        imageEncoderSettings.setCodec("imag/jpeg");
                        imageEncoderSettings.setResolution(1600,1200);
                        mCameraImageCapture->setEncodingSettings(imageEncoderSettings);

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #19

                        .setCodec("imag/jpeg");

                        Is that correct?
                        Seems to miss an e

                        R 1 Reply Last reply
                        0
                        • mrjjM mrjj

                          .setCodec("imag/jpeg");

                          Is that correct?
                          Seems to miss an e

                          R Offline
                          R Offline
                          robotsandi
                          wrote on last edited by
                          #20

                          @mrjj
                          yes this is correct

                          R 1 Reply Last reply
                          0
                          • R robotsandi

                            @mrjj
                            yes this is correct

                            R Offline
                            R Offline
                            robotsandi
                            wrote on last edited by
                            #21

                            @robotsandi
                            Is that correct
                            mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
                            to mCameraImage Capture is store image in buffer??

                            R 1 Reply Last reply
                            0
                            • R robotsandi

                              @robotsandi
                              Is that correct
                              mCameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
                              to mCameraImage Capture is store image in buffer??

                              R Offline
                              R Offline
                              robotsandi
                              wrote on last edited by
                              #22

                              @robotsandi
                              QPixmap original("mCameraImageCapture");
                              QPixmap cropped = original.copy(x1, y1, width, height);
                              cropped.save(filename);
                              is pic is not save

                              1 Reply Last reply
                              0
                              • mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #23

                                Yes it think its ok.
                                But not used in sample so might not be needed.
                                They just setup
                                imageCapture = new QCameraImageCapture(camera);
                                and hook up signal
                                connect(imageCapture, &QCameraImageCapture::imageCaptured, this, &Camera::processCapturedImage);
                                and then do

                                void Camera::processCapturedImage(int requestId, const QImage& img)
                                {
                                    Q_UNUSED(requestId);
                                    QImage scaledImage = img.scaled(ui->viewfinder->size(),
                                                                    Qt::KeepAspectRatio,
                                                                    Qt::SmoothTransformation);
                                
                                    ui->lastImagePreviewLabel->setPixmap(QPixmap::fromImage(scaledImage));
                                
                                    // Display captured image for 4 seconds.
                                    displayCapturedImage();
                                    QTimer::singleShot(4000, this, &Camera::displayViewfinder);
                                }
                                
                                1 Reply Last reply
                                0

                                • Login

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • Users
                                • Groups
                                • Search
                                • Get Qt Extensions
                                • Unsolved