Change language

Draw a triangle with a centroid using OpenCV

Given the three vertices of a triangle, write a Python program to find the centroid of a triangle, and then draw a triangle with its centroid in a black window using OpenCV.

Examples:

  Input:  (100, 200) (50, 50) (300, 100)  Output:  (150, 116) 

Required Libraries:

 OpenCV Numpy 

Fit:
Create a black window with three color channels at 400x 300. Draw three lines that go through the specified points using the built-in OpenCV lines feature. This will create a triangle on the black window. Find the center of gravity of a triangle using the following simple formula.

   

Draw this centroid on a black window using the circle OpenCV with zero thickness.

Below is the implementation of the above approach:

# Python3 code to draw triangle and search centroid

 
# importing libraries

import numpy as np

import cv2

 
# Width and height of the black window

width = 400

height = 300

 
# Create a 400 x 300 black window

img = np.zeros ((height, width, 3 ), np.uint8)

 
# Three vertices (tuples) of a triangle

p1 = ( 100 , 200 )

p2 = ( 50 , 50 )

p3 = ( 300 , 100 )

 
# Draw a triangle using lines
# in black window with dots
# cv2.line is a built-in function in the opencv library

cv2.line (img, p1, p2, ( 255 , 0 , 0 ), 3 )

cv2.line (img, p2, p3, ( 255 ,   0 , 0 ), 3 )

cv2.line (img, p1, p3, ( 255 , 0 , 0 ), 3 )

 
# centroid search by following formula
# (X, Y) = (x1 + x2 + x3 // 3, y1 + y2 + y3 // 3)

centroid = ((p1 [ 0 ] + p2 [ 0 ] + p3 [< / code> 0 ]) / / 3 , (p1 [ 1 ] + p2 [ 1 ] + p3 [ 1 ]) / / 3 )

  
# Draw a centroid on a window

cv2.circle (img, centroid, 4 , ( 0 , 255 , 0 ))

< p>  
# image - window title

cv2.imshow ( "image" , img)

cv2.waitKey ( 0 )

Exit:

 (150, 116) 

Shop

Gifts for programmers

Learn programming in R: courses

$FREE
Gifts for programmers

Best Python online courses for 2022

$FREE
Gifts for programmers

Best laptop for Fortnite

$399+
Gifts for programmers

Best laptop for Excel

$
Gifts for programmers

Best laptop for Solidworks

$399+
Gifts for programmers

Best laptop for Roblox

$399+
Gifts for programmers

Best computer for crypto mining

$499+
Gifts for programmers

Best laptop for Sims 4

$

Latest questions

PythonStackOverflow

Common xlabel/ylabel for matplotlib subplots

1947 answers

PythonStackOverflow

Check if one list is a subset of another in Python

1173 answers

PythonStackOverflow

How to specify multiple return types using type-hints

1002 answers

PythonStackOverflow

Printing words vertically in Python

909 answers

PythonStackOverflow

Python Extract words from a given string

798 answers

PythonStackOverflow

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

606 answers

PythonStackOverflow

Python os.path.join () method

384 answers

PythonStackOverflow

Flake8: Ignore specific warning for entire file

360 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

How to specify multiple return types using type-hints

Printing words vertically in Python

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically