OpenCV HSI颜色空间分析:识别高饱和度像素
#include <opencv2/opencv.hpp> // 加载图像 cv::Mat image = cv::imread("image.jpg");
cv::Mat hsiImage; cv::cvtColor(image, hsiImage, CV_BGR2HSV);
int numPixelsRGB = 0; int numPixelsHSI = 0;
for (int i = 0; i < image.rows; i++) { for (int j = 0; j < image.cols; j++) { // 获取RGB颜色模式下的像素值 cv::Vec3b rgbPixel = image.at<cv::Vec3b>(i, j); uchar red = rgbPixel[2]; uchar green = rgbPixel[1]; uchar blue = rgbPixel[0];
// 获取HSI颜色
cv::Vec3b hsiPixel = hsiImage.at<cv::Vec3b>(i, j);
uchar hue = hsiPixel[0];
uchar saturation = hsiPixel[1];
uchar intensity = hsiPixel[2];
// 计算像素总数
numPixelsRGB++;
// 判断HSI颜色是否满足条件(例如,饱和度大于阈值)
if (saturation > threshold) {
numPixelsHSI++;
}
}
}
原文地址: https://www.cveoy.top/t/topic/pvY0 著作权归作者所有。请勿转载和采集!