OPENCV圖像色彩空間與應用轉換[利用RGB轉HSV達到圖像去背/顏色偵測 效果]
OPENCV圖像色彩空間與應用轉換[利用RGB轉HSV達到圖像去背/顏色偵測 效果]
資料來源: https://mp.weixin.qq.com/s?__biz=MzA4MDExMDEyMw==&mid=2247487846&idx=1&sn=b37138529b27f27761f8b413359f23ff&chksm=9fa86622a8dfef34e230db6b7934ba31ba35aaa728c6de441a500f78f4df807042cd2d45080e&scene=126&sessionid=1580708165&key=770228bd0c42a094e368c6b53f28c79cc88b8e633bdee55433372790587a329b009805d11cf908a98ebc2ae614b0c8d31b028c6bd2a7713ba8f3df5e924c67bc62c5bf61d8cf616e0f4404b8413fc200&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=6208006f&lang=zh_TW&exportkey=ApIdp03xFZhH6gGZaGNX7D4%3D&pass_ticket=2DoZmWVnEtz3icm2PB%2BayuUcqv9cXB85Gfur%2FLC9QWuEf3aWO8oX%2F5eXQtPf9s4Y
H(Hue) 表示顏色通道,不同的值表示不同的顏色範圍
S表示飽和度通道,表示色澤
V表示亮度通道,代表圖像亮度高低級別
在H、S、V通道上對圖像亮度跟顏色或者飽和度的調整就非常方便了,另外對一些特定的顏色值進行分離也比較方便了。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, const char *argv[])
{
Mat src = imread("D:/vcprojects/images/cat.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
// RGB to HSV
Mat hsv;
cvtColor(src, hsv, COLOR_BGR2HSV);
imshow("hsv", hsv);
// RGB to YUV
Mat yuv;
cvtColor(src, yuv, COLOR_BGR2YUV);
imshow("yuv", yuv);
// RGB to YUV
Mat ycrcb;
cvtColor(src, ycrcb, COLOR_BGR2YCrCb);
imshow("ycrcb", ycrcb);
Mat src2 = imread("D:/javaopencv/tinygreen.png");
imshow("src2", src2);
cvtColor(src2, hsv, COLOR_BGR2HSV);
Mat mask;
inRange(hsv, Scalar(35, 43, 46), Scalar(99, 255, 255), mask);
imshow("mask", mask);
waitKey(0);
return 0;
}
One thought on “OPENCV圖像色彩空間與應用轉換[利用RGB轉HSV達到圖像去背/顏色偵測 效果]”
OPENCV
顏色
色彩
分割
定位
偵測
檢測
顏色提取
顏色
分割