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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

OpenCV(十四)图像阈值

發(fā)布時(shí)間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV(十四)图像阈值 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

一、基礎(chǔ)理論

1.二進(jìn)制閾值化

2.反二進(jìn)制閾值化

3.截?cái)嚅撝祷?/p>

4.閾值化為0

5.反閾值化為0

函數(shù)

代碼

效果

參考答案


一、基礎(chǔ)理論

在二維數(shù)字圖像中,其每個(gè)像素點(diǎn)對(duì)應(yīng)了不同的像素值,其像素值各不相同。可以對(duì)像素值特定范圍內(nèi)的圖像圖像進(jìn)行操作,劃分這個(gè)范圍的值就被稱為圖像閾值,它不是一個(gè)固定的量級(jí),是根據(jù)每幅圖像和處理要求動(dòng)態(tài)改變。例如我們可以從圖像中利用閾值分割出我們需要的部分。

例:

??

1.二進(jìn)制閾值化

??

在運(yùn)用二進(jìn)制閾值化操作時(shí),首先指定一個(gè)閾值量即像素的灰度值,遍歷圖像中像素值,大于這個(gè)閾值的像素均設(shè)置為最大像素值(如8位灰度值最大為255),灰度值小于設(shè)定閾值的像素點(diǎn)像素值重新賦值為0.得到如下圖所示圖像,借用二進(jìn)制概念。(超過(guò)該閾值即為1(255),否則為0

2.反二進(jìn)制閾值化

??

反二進(jìn)制閾值化顧名思義就是與第一個(gè)閾值化類型相反。

與二進(jìn)制閾值化相同的是也要首先指定一個(gè)閾值,不同的是在對(duì)圖像進(jìn)行閾值化操作時(shí)正好與二進(jìn)制閾值化相反,當(dāng)圖像像素點(diǎn)超過(guò)這個(gè)閾值的時(shí)候像素點(diǎn)重新賦值為0,當(dāng)像素值低于該閾值時(shí)即賦值為最大值。(低于該閾值即為1(255),否則為0

3.截?cái)嚅撝祷?/h2>

根據(jù)給定的像素值閾值,圖像中大于該閾值的像素點(diǎn)被重新設(shè)置為該閾值,而小于該閾值的像素值保持不變。(超過(guò)閾值部分設(shè)置為閾值


4.閾值化為0

??

與截?cái)嚅撝祷煌?#xff0c;閾值化為0類型像素點(diǎn)的灰度值如果大于該閾值則像素值不變,如果像素點(diǎn)的灰度值小于該閾值,則像素值設(shè)置為0。(不足閾值部分設(shè)置為0


5.反閾值化為0

??

其原理類似于閾值化為0類型只不過(guò)在對(duì)圖像進(jìn)行操作時(shí)相反,像素值大于該閾值的像素重新賦值為0,而小于該閾值的像素值則保持不變,(超過(guò)閾值部分設(shè)置為0

函數(shù)

threshold(gray, dst, threshold_value, threshold_max, type);//				閾值			最大值			類型

類型:?

?

代碼

//基本閾值操作
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>using namespace cv;
Mat src, gray, dst;
int threshold_value = 127;
int threshold_max = 255;
int type = 2;
int type_max = 4;
char name[] = "result";
void Callback_Thre(int, void*);			//回調(diào)函數(shù)void Image_Init()
{src = imread("Resource/test.jpg");if (!src.data){printf("could not load image...\n");return ;}imshow("原圖", src);cvtColor(src, gray, COLOR_BGR2GRAY);imshow("GRAY", gray);
}int main(int argc, int argv)
{Image_Init();Callback_Thre(0, 0);createTrackbar("threshold value", name, &threshold_value, threshold_max, Callback_Thre);createTrackbar("threshold type", name, &type, type_max, Callback_Thre);waitKey(0);return 0;
}//閾值化實(shí)現(xiàn)函數(shù)
void Callback_Thre(int, void*)
{//閾值化(自主定義閾值)threshold(gray, dst, threshold_value, threshold_max, type);//閾值化(系統(tǒng)幫忙取,大津法OTSU:THRESH_OTSU;三角形閾值法:THRESH_TRIANGLE)//threshold(gray, dst, 0, 255, THRESH_OTSU | type);imshow(name, dst);
}

效果

?

參考答案

https://blog.csdn.net/keith_bb/article/details/54617625

https://blog.csdn.net/zhu_hongji/article/details/81536891

總結(jié)

以上是生活随笔為你收集整理的OpenCV(十四)图像阈值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。