黑色物体检测的范围是多少?
我试过以下代码
cvInRangeS(imgHSV, cvScalar(0, 0, 0, 0), cvScalar(0, 255, 255, 0), imgThreshold);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
elv*_*kaj 16
对于HSV范围内的黑白颜色,您必须将色调设置为最大范围(0到180),并将饱和度设置为最大范围(0到255).您可以使用该值,例如,0到30或40表示黑色,200到255表示白色.
// for black
cvInRangeS(imgHSV, cvScalar(0, 0, 0, 0), cvScalar(180, 255, 30, 0), imgThreshold);
// for white
cvInRangeS(imgHSV, cvScalar(0, 0, 200, 0), cvScalar(180, 255, 255, 0), imgThreshold);
Run Code Online (Sandbox Code Playgroud)
或者您可以使用C++接口:
// for black
cv::inRange(imgHSV, cv::Scalar(0, 0, 0, 0), cv::Scalar(180, 255, 30, 0), imgThreshold);
// for white
cv::inRange(imgHSV, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 255, 255, 0), imgThreshold);
Run Code Online (Sandbox Code Playgroud)
HSV和HSL颜色空间中的黑色被检测为低值(或HSL 中的亮度)。
HSL 中的白色检测到高值。白色是检测到具有高亮度和低饱和度的HSV。
白色
cv::inRange(imgHSL, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 255, 255, 0), imgThreshold);
Run Code Online (Sandbox Code Playgroud)
或者
cv::inRange(imgHSV, cv::Scalar(0, 0, 200, 0), cv::Scalar(180, 20, 255, 0), imgThreshold);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26448 次 |
| 最近记录: |