Skip to main content

Opencv rectangle drawing tutorial C++

Opencv rectangle drawing tutorial C++

Opencv rectangle drawing tutorial by example in C++. Simple steps let you draw the rectangle inside the pictures and video sample. Several rectangle definitions and rectangle drawing function just show you a various ways to draw the rectangles inside the picture and video. It is simple and easy. 

Steps in descriptions rectangle drawing 

All the steps below the picture (A B ... F) are also marked inside the code. The commends inside c++ code // just describe the Rect definition to define rectangle to draw inside the function rectangle. This function just draws the defined rectangle inside the Picture.  Rectangle(Picture is the first parameter. This is just Mat where to put the second parameter. Defined Rect (rectangle). You can choose to put the rectangle to that function in a several ways. This is not 2 much important. They just do the same job for you.. I am using just one of them. 

Try to figure out the steps and compare the code with images.. 

The third parameter is most likely the color of the Rectangle. Color is described by 3 numbers Scalar(B,G,R). B for Blue, G for green and R for the last one. You now the color very well 

There is 3 more parameters. After the color, there is the thickness of the line. Use whatever you want. Another one is the type of line. For me is this parameter always 8. I don't care about the dashed and solid line type.. The last is shift. What the hell is that? I know but do not care. 

Try the code and compare the steps and code. Enjoy 



Opencv draw rectangle
Opencv rect Step A in code


Opencv draw rectangle
Opencv rect Step B in code


Opencv draw rectangle
Opencv rect Step C in code


Opencv draw rectangle
Opencv rect Step D in code


Opencv draw rectangle
Opencv rect Step E in code


Opencv draw rectangle
Opencv rect Step F in code


Opencv c++ tutorial draw Rectangle code

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/objdetect.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argcchar** argv)
{
      Mat Picture; 
      Picture = imread("22.JPG");
      resize(Picture, Picture, Size(800600));
    
                //A Parameters x (start in x axes horizontal) y (start in vertical)
                // w (vertical lenght)  h (Horizontal lenght)
 Rect RectangleToDraw(1010100100);
 rectangle(Picture, RectangleToDraw.tl(), RectangleToDraw.br(), 
Scalar(00255), 280);
 imshow("DrawRectangle", Picture);
 int key4 = waitKey(2000);
// save
 imwrite("1.jpg", Picture);
                //B Rectangle defined by 2 points
 Point A(1010);
 Point B(100100);
 Rect RectangleToDraw2(A, B);
 rectangle(Picture, RectangleToDraw2.tl(), RectangleToDraw2.br(), 
Scalar(0255255), 180);
 imwrite("2.jpg", Picture);
  
               //C x=100, y=100, w=300, h=300
 Rect RectangleToDraw3(100,100,200,200);
 rectangle(Picture, RectangleToDraw3, Scalar(02500), 280);
 imwrite("3.jpg", Picture);
               //D Scalar(255, 0, 0) Color parameter 
               // Blue 255, Green 0, Red 0 
 Rect RectangleToDraw4(300300100100);
 rectangle(Picture, RectangleToDraw4, Scalar(25500), 280);
 imwrite("4.jpg", Picture);
               //E 10 value, int is thickness of the line 
 Rect RectangleToDraw5(300300100100);
 rectangle(Picture, RectangleToDraw5, Scalar(2550255), 1080);
 imwrite("5.jpg", Picture);
               //F Rect defined inside drawinf function
               // 4 value is line type
 rectangle(Picture, Rect(400,400,50,50), Scalar(255255255), 240);
 imwrite("6.jpg", Picture);
     imshow("DrawRectangle",Picture);
     int key7 = waitKey(20);
 
 return 0;
}



Comments

  1. its good idea but the code on first kline doesnt accepted in a machine what that............

    ReplyDelete
    Replies

    1. Code is correct and works. I generate all the picture here by this code. Maybe the minor mistakes should be here. But works

      Delete

Post a Comment