1. 程式人生 > >OpenCV文件閱讀筆記-inRange官方解析及例項

OpenCV文件閱讀筆記-inRange官方解析及例項

目錄

官方解析

博主例子

官方解析

CV_EXPORTS_W void inRange(InputArray src, InputArray lowerb,InputArray upperb, OutputArray dst);

如果待檢測陣列在給定的範圍內那麼就替換他。 這個函式檢測範圍如下: 1.對於單通道輸入的陣列: \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0  \leq \texttt{src} (I)_0 \leq  \texttt{upperb} (I)_0\f] 2.對於雙通道的陣列: \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0  \leq \texttt{src} (I)_0 \leq  \texttt{upperb} (I)_0  \land \texttt{lowerb} (I)_1  \leq \texttt{src} (I)_1 \leq  \texttt{upperb} (I)_1\f] 3.四通道的也如此

各個引數的解析: 1.src是輸入的陣列 2.lowerb是包含lowerb的最小值陣列或分量 3.upperb是包含upperb的最大值陣列或分量 4.輸出的陣列,大小和通道數與src一樣,並且是CV_8V的型別

博主例子

執行截圖如下:

原始碼如下:

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgproc/imgproc_c.h>

#include <iostream>
using namespace std;
using namespace cv;

void main(){

	Mat matSrc=imread("1.png",IMREAD_UNCHANGED);
	Mat matHsv,matInRange;
	cvtColor(matSrc,matHsv,COLOR_RGB2HSV);
	inRange(matHsv,Scalar(35,43,46),Scalar(77,255,255),matInRange);

	waitKey();
	getchar();
}