Color Detection With Python and OpenCV
Hello friends, in this tutorial I will create a programming program using OpenCV colors using the Python programming language.
So, for those who don't know OpenCV is an open-source library that can be used for real-time dynamic image processing, created by Intel, and now supported by Willow Garage and Itseez. I made this program using the PyCharm JetBrains IDE.
First, open your PyCharm and then create a new file, for example I use the name "index.py" and add an image that has a variety of colors like this
![]() |
colors.png |
import cv2 import numpy as np def empty(a): pass # create new window with trackbar for HSV Color cv2.namedWindow("Range HSV") cv2.resizeWindow("Range HSV", 500, 350) cv2.createTrackbar("HUE Min", "Range HSV", 0,180,empty) cv2.createTrackbar("HUE Max", "Range HSV", 180,180,empty) cv2.createTrackbar("SAT Min", "Range HSV", 0,255,empty) cv2.createTrackbar("SAT Max", "Range HSV", 255,255,empty) cv2.createTrackbar("VALUE Min", "Range HSV", 0,255,empty) cv2.createTrackbar("VALUE Max", "Range HSV", 255,255,empty) # read image image = cv2.imread("colors.png")
In the above code, we enter the required libraries namely cv2 and numpy, then we create an empty function. Then we create a new window with the name HSV Range in which will contain 6 trackbar and the last we create a variable with the name of the image to read the image to be inserted.
If we have entered the next code
while True: # get value from trackbar h_min = cv2.getTrackbarPos("HUE Min", "Range HSV") h_max = cv2.getTrackbarPos("HUE Max", "Range HSV") s_min = cv2.getTrackbarPos("SAT Min", "Range HSV") s_max = cv2.getTrackbarPos("SAT Max", "Range HSV") v_min = cv2.getTrackbarPos("VALUE Min", "Range HSV") v_max = cv2.getTrackbarPos("VALUE Max", "Range HSV") # define range of some color in HSV lower_range = np.array([h_min,s_min,v_min]) upper_range = np.array([h_max, s_max, v_max]) # convert image to HSV hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # threshold the hsv image to get some color thresh = cv2.inRange(hsv, lower_range, upper_range) # bitwise AND mask and original image bitwise = cv2.bitwise_and(image, image, mask=thresh) cv2.imshow("Original Image", image) cv2.imshow("Thresholded", thresh) cv2.imshow("Bitwise", bitwise) k = cv2.waitKey(1) & 0xFF if k == ord('m'): mode = not mode elif k == 27: break cv2.destroyAllWindows()
The code above is a looping continuously, inside there are several variables, i.e.
- h_min : to store numeric values from the trackbar with the name HUE Min
- h_max : to store numeric values from the trackbar with the name HUE Max
- s_min : to store numeric values from the trackbar with the name SAT Min
- s_max : to store numeric values from the trackbar with the name SAT Max
- v_min : to store numeric values from the trackbar with the name VALUE Min
- v_max : to store numeric values from the trackbar with the name VALUE Max
Next, there are lower_range and upper_range variables, where lower_range will store the values of HUE Min, SAT Min and VALUE Min in the form of arrays. Where as upper_range is to store HUE Max, SAT Max and VALUE Max values in an array.
Next we convert the image variable into HSV mode which is stored in the hsv variable. Furthermore, the hsv variable was masked or threshold based on the range of values of the lower_range and upper_range variables. Finally in the bitwise variable we display the detected color.
If it's finished, we display these variables, namely image, thresh and bitwise. The code snippet below works so that the form doesn't close immediately, meaning that if we want to close it we need to press the "m" button on the keyboard.
![]() |
Results |
Thanks for sharing your blog. In this Blog you have given Informative Information which is very important for users. When looking for the finest cloud computing platforms for your firm, whether for a cloud migration plan or a cloud-native development project, keep your goals, projected growth, and budget in mind. Comparison will assist you in matching the right provider to your needs rather than the other way around.
ReplyDeleteWhether you are just starting your company, working with a new vendor or just want to learn more about how QuickBooks works, dial Quickbooks Suppport Phone Number +1 866-669-5068 for help along the way.
ReplyDeleteInfomative post about how to use pyton. Do check out Driving Lessons Hornchurch for more driving knowledge
ReplyDeleteIf this is in fact the case, then dialing Quickbooks Customer Service +1 866-669-5068. will automatically send all of these issues up to a dedicated QuickBooks help desk that can answer any questions and allow your company to move forward.
ReplyDeleteI’m really happy to say it was an interesting post to read. I learned new information from your article on nmims project
ReplyDelete, you are doing a great job
It’s hard to come by experienced people about this subject, but you seem like you know what you’re talking about! Thanks
ReplyDeletehttps://www.webranksindia.com/
You ought to be a part of a contest for one of the finest sites on the internet. I will recommend this web site!
ReplyDeletehttps://www.webranksindia.com/