咱们先上代码
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap(0);
Mat img;
Mat imgHSV, mask, imgColor;
int hmin = 0, smin = 0, vmin = 0;
int hmax = 179, smax = 255, vmax = 255;
namedWindow("Trackbars", (640, 200)); // Create Window
createTrackbar("Hue Min", "Trackbars", &hmin, 179);
createTrackbar("Hue Max", "Trackbars", &hmax, 179);
createTrackbar("Sat Min", "Trackbars", &smin, 255);
createTrackbar("Sat Max", "Trackbars", &smax, 255);
createTrackbar("Val Min", "Trackbars", &vmin, 255);
createTrackbar("Val Max", "Trackbars", &vmax, 255);
while (true) {
cap.read(img);
cvtColor(img, imgHSV, COLOR_BGR2HSV);
Scalar lower(hmin, smin, vmin);
Scalar upper(hmax, smax, vmax);
inRange(imgHSV, lower, upper, mask);
// hmin, smin, vmin, hmax, smax, vmax;
cout << hmin << ", " << smin << ", " << vmin << ", " << hmax << ", " << smax << ", " << vmax << endl;
imshow("Image", img);
imshow("Mask", mask);
waitKey(1);
}
}
逐步讲解
VideoCapture cap(0);
Mat img;
Mat imgHSV, mask, imgColor;
int hmin = 0, smin = 0, vmin = 0;
int hmax = 179, smax = 255, vmax = 255;namedWindow("Trackbars", (640, 200)); // Create Window
createTrackbar("Hue Min", "Trackbars", &hmin, 179);
createTrackbar("Hue Max", "Trackbars", &hmax, 179);
createTrackbar("Sat Min", "Trackbars", &smin, 255);
createTrackbar("Sat Max", "Trackbars", &smax, 255);
createTrackbar("Val Min", "Trackbars", &vmin,25);
createTrackbar("Val Max", "Trackbars", &vmax, 255);
这部分是打开我们的摄像头VideoCapture cap(0);0是电脑自带的摄像头,1是外部摄像头。随后建立一个hsv调节窗口。为了确定我们颜色具体的hsv我们应该先查找一下对应颜色的hsv范围
之后我们便可以缩小我们的hsv范围,一以下是这调节hsv的界面
cap.read(img);
cvtColor(img, imgHSV, COLOR_BGR2HSV);
Scalar lower(hmin, smin, vmin);
Scalar upper(hmax, smax, vmax);
inRange(imgHSV, lower, upper, mask);
// hmin, smin, vmin, hmax, smax, vmax;
cout << hmin << ", " << smin << ", " << vmin << ", " << hmax << ", " << smax << ", " << vmax << endl;
imshow("Image", img);
imshow("Mask", mask);
waitKey(1);
这边就是得到一个我们最后得到颜色的hsv以及我们最后的一个效果图。下面就用一个红色物体来测试一下我们的代码。
版权声明:本文为m0_52430942原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。