日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

threshold()

發布時間:2023/12/2 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 threshold() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一、threshold()函數

1.1 threshold()函數各參數詳解

double threshold(InputArray src,OutputArray dst,double thresh,double maxval,int type)

?? 第一個參數,InputArray類型的src,輸入數組,填單通道 , 8或32位浮點類型的Mat即可。

?? 第二個參數,OutputArray類型的dst,函數調用后的運算結果存在這里,即這個參數用于存放輸出結果,且和第一個參數中的Mat變量有一樣的尺寸和類型。

?? 第三個參數,double類型的thresh,閾值的具體值。

?? 第四個參數,double類型的maxval,當第五個參數閾值類型type取 THRESH_BINARY 或THRESH_BINARY_INV閾值類型時的最大值.

?? 第五個參數,int類型的type,閾值類型。

第五參數有以下幾種類型

0: THRESH_BINARY? 當前點值大于閾值時,取Maxval,也就是第四個參數,下面再不說明,否則設置為0

1: THRESH_BINARY_INV 當前點值大于閾值時,設置為0,否則設置為Maxval

2: THRESH_TRUNC 當前點值大于閾值時,設置為閾值,否則不改變

3: THRESH_TOZERO 當前點值大于閾值時,不改變,否則設置為0

4:THRESH_TOZERO_INV? 當前點值大于閾值時,設置為0,否則不改變

?

1.2調用示例?

Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");threshold(ScrImage, OutImage1, 200, 255, CV_THRESH_BINARY);//固定閾值分割imshow("【固定閾值處理:二值化】", OutImage1);

?

二、adapativeThreshold()函數

2.1 adapativeThreshold()函數各參數詳解

void cvAdaptiveThreshold(constCvArr* src,CvArr* dst,double max_value,int adaptive_method =CV_ADAPTIVE_THRESH_MEAN_C,int threshold_type =CV_THRESH_BINARY,int block_size = 3,double param1= 5);

?? src 輸入圖像.

?? dst 輸出圖像.

?? max_value使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV的最大值.

?? adaptive_method自適應閾值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C (見討論).

?? threshold_type

?? 取閾值類型:必須是下者之一

CV_THRESH_BINARY,

CV_THRESH_BINARY_INV

block_size用來計算閾值的象素鄰域大小: 3, 5, 7,...

param1與方法有關的參數。對方法CV_ADAPTIVE_THRESH_MEAN_C 和CV_ADAPTIVE_THRESH_GAUSSIAN_C, 它是一個從均值或加權均值提取的常數(見討論), 盡管它可以是負數。

?

2.2調用示例?

Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");adaptiveThreshold(ScrImage, OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自適應閾值分割imshow("【自動閾值處理:二值化】", OutImage2);

?

三、完整程序

#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp>#include <vector>#include <cstdio>using namespacestd;using namespacecv;int main(){Mat ScrImage, ScrImgaeCopy1, OutImage, OutImage1, OutImage2,OutImage3, OutImage4, OutImage5, OutImage6, OutImage7, OutImage8, OutImage9;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg",0); //讀入圖像 \\image1.jpg brownbug.jpg whitebug.jpgimshow("【原圖】", ScrImage);threshold(ScrImage,OutImage1, 200, 255, CV_THRESH_BINARY);//固定閾值分割adaptiveThreshold(ScrImage,OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自適應閾值分割imshow("【固定閾值處理:二值化】", OutImage1);imshow("【自動閾值處理:二值化】", OutImage2);waitKey(0);return NULL;}

?

總結

以上是生活随笔為你收集整理的threshold()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。