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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

阈值分割方法总结

發布時間:2024/8/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阈值分割方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閾值是界限的意思,閾值分割就是以一個合適的像素值作為界限將圖像處理成高對比度、容易識別的圖像的一種方法。
threshold()

double cv::threshold(cv::InputArray src, // 輸入圖像cv::OutputArray dst, // 輸出圖像double thresh, // 閾值double maxValue, // 向上最大值int thresholdType // 閾值化操作的類型 )


舉個例子理解下thresholdType,拿第一種方法為例。像素值如果大于閾值,則把像素值變成255,否則,變成0.這樣以來,就把原圖變成黑白兩色,對比度明顯。

threshold(image, t_image,120, 255,CV_THRESH_BINARY);

自適應閾值分割

void cv::adaptiveThreshold( cv::InputArray src, // 輸入圖像 cv::OutputArray dst, // 輸出圖像 double maxValue, // 向上最大值 int adaptiveMethod, // 自適應方法,平均或高斯 int thresholdType // 閾值化類型 int blockSize, // 塊大小 double C // 常量 );

adaptiveThreshold()支持兩種自適應方法,cv::ADAPTIVE_THRESH_MEAN_C(平均)和cv::ADAPTIVE_THRESH_GAUSSIAN_C(高斯)。

adaptiveThreshold(image, src, 255, ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY,5,20);

自適應閾值不用自己選擇,該函數根據圖像情況自己設定。

該圖是經canny檢測之后的閾值分割圖。

閾值分割還有一種方法,直接說明:

Mat image = imread("D:\\program\\bu1.png",0);//讀入模板圖imshow("原圖",image);waitKey(0);Mat dstImg(image.size(), CV_8UC3, Scalar::all(0));//純黑圖像int u1 = image.rows;//閾值化處理int u2 = image.cols;for (int i = 0; i < image.rows; i++){for (int j = 0; j < image.cols; j++){sum = sum + image.at<uchar>(i, j);}}int u = u1*u2;int average = (int)sum/u*2;threshold(image, t_image, average, 255,CV_THRESH_BINARY); Canny(src,t_image,50,50); imshow("閾值分割圖",t_image);waitKey(0);

該方法簡單明了,閾值取值適中,不錯。

總結

以上是生活随笔為你收集整理的阈值分割方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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