OpenCV文件閱讀筆記-inRange官方解析及例項
阿新 • • 發佈:2018-12-14
目錄
官方解析
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(); }