1.cv_exports_w double threshold( inputarray src, outputarray dst, double thresh, double maxval, int type )
//src: 原始陣列(單通道,8-bit, 32-bit 浮點數)
//dst: 輸出陣列(與輸入陣列保持一致)
//thresh: 閾值(門檻值)
//maxval (cv_thresh_binary 和 cv_thresh_binary_inv 的最大值)
//type : 閾值型別(這裡只介紹兩種)
threshold_type=cv_thresh_binary:如果 src(x,y)>threshold ,dst(x,y) = maxvalue; 否則,dst(x,y)=0;
threshold_type=cv_thresh_binary_inv:如果 src(x,y)>threshold,dst(x,y) = 0; 否則,dst(x,y) = maxvalue.
2.hsv顏色分量範圍
在執行程式時找物件的顏色對應範圍可以參考這個**,如果想要精確,也可以用ps等
檢測影象
*/#include#includeusing namespace cv;
using namespace std;
void detecthscolor(const mat& img, double minhue, double maxhue, double minsat, double maxsat, mat& mask);
int main()
mat mask;
detecthscolor(img, 35, 28, 178, 219, mask); //這裡的色調飽和度範圍要對應設定
mat result(img.size(), cv_8uc3, scalar(0,0,0));
img.copyto(result,mask);
imshow("show_result", result);
double time = ((double)gettickcount() - t) / gettickfrequency();
cout << "time = " << time << endl;
waitkey(0);
destroyallwindows;
return 0;
}void detecthscolor(const mat & img, double minhue, double maxhue, double minsat, double maxsat, mat & mask) //h是色調區間,s是飽和度區間
執行結果:
這裡由於背景和小狗的毛髮顏色交叉太大,就這樣了,以後處理好的效果
單通道和三通道學習理解單通道
單通道 此通道上值為0 255。255為白色,0是黑色 只能表示灰度,不能表示彩色。三通道,在bgr 255,255,255為白色,0,0,0是黑色 可以表示彩色,灰度也是彩色的一種。cv imread函式。screen是一張彩色圖 cv mat mat cv imread root desktop...
單通道和多通道卷積
卷積之後的通道數只是取決於卷積核的數目,和卷積核的channel無關,卷積核的channel是和輸入的channel保持一致的。對於單通道影象,若利用10個卷積核進行卷積計算,可以得到10個特徵圖 若輸入為多通道影象,則輸出特徵圖的個數依然是卷積核的個數 10個 1.單通道多個卷積核卷積計算 乙個卷...
對通道的理解
單通道圖 俗稱灰度圖,每個畫素點只能有有乙個值表示顏色,它的畫素值在0到255之間,0是 黑色,255是白色,中間值是一些不同等級的灰色。也有3通道的灰度圖,3通道灰 度圖只有乙個通道有值,其他兩個通道的值都是零 三通道圖 每個畫素點都有3個值表示 所以就是3通道。也有4通道的圖。例如rgb即為三通...