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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

OpenCV(基础补充)图像二值化

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV(基础补充)图像二值化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、基礎理論

1、二值圖像概念

2、API介紹

二、圖像二值化(黑白化)步驟:

1、彩圖化灰度圖

2、灰度圖化黑白圖(二值化)

3、翻轉黑白部分

總代碼

參考資料


一、基礎理論

1、二值圖像概念

二值圖像(Binary Image)是指將圖像上的每一個像素只有兩種可能的取值或灰度等級狀態,人們經常用黑白、B&W、單色圖像表示二值圖像

2、API介紹

def threshold(src: Any,thresh: Any,maxval: Any,type: Any,dst: Any = None) -> None

src:源圖像,可以為8位的灰度圖,也可以為32位的彩色圖像。(兩者由區別)

dst:輸出圖像

thresh:閾值

maxval:dst圖像中最大值

type:閾值類型,可以具體類型如下:

enum ThresholdTypes {THRESH_BINARY ? ? = 0,        //黑白THRESH_BINARY_INV = 1,        //黑白反轉THRESH_TRUNC ? ? ?= 2,        //得到圖像多像素值THRESH_TOZERO ? ? = 3,        //當前點值大于閾值時,不改變,否則設置為0THRESH_TOZERO_INV = 4,        //當前點值大于閾值時,設置為0,否則不改變THRESH_MASK ? ? ? = 7,THRESH_OTSU ? ? ? = 8,        //自適應閾值THRESH_TRIANGLE ? = 16
};

二、圖像二值化(黑白化)步驟:

彩色圖像——>灰度圖像——>二值圖像

1、彩圖化灰度圖

C++:

//灰度圖
void ToGray()
{// 轉為灰度圖cvtColor(img, grayImage, COLOR_BGR2GRAY);imshow("灰度圖像", grayImage);
}

python:

# 1、灰度圖像
imgray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#                           類型
cv.imshow('imggray', imgray)

2、灰度圖化黑白圖(二值化)

C++:?

//黑白圖(二值化)
void ToBin()
{// 將灰度圖二值化threshold(grayImage, binImage, 0, 255, THRESH_OTSU);imshow("二值化圖像", binImage);
}

python:

# 2、二進制圖像
ret, binary = cv.threshold(imgray, 127, 255, 0)
#閾值 二值圖像
cv.imshow('binary', binary)

3、翻轉黑白部分

ret, binary = cv.threshold(imgray, 127, 255, cv.THRESH_OTSU|cv.THRESH_BINARY_INV)

?

總代碼

C++:?

# 灰度圖與二值圖
# 注:二值圖必須由灰度圖轉化
import cv2 as cvimg = cv.imread('Resource/test.jpg')
cv.imshow('img', img)# 1、灰度圖像
imgray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#                           類型
cv.imshow('imggray', imgray)# 2、二進制圖像
ret, binary = cv.threshold(imgray, 127, 255, cv.THRESH_OTSU)     #THRESH_OTSU:自適應閾值處理
# ret, binary = cv.threshold(imgray, 127, 255, cv.THRESH_OTSU|cv.THRESH_BINARY_INV)
#THRESH_OTSU:自適應閾值處理        cv.THRESH_TOZERO_INV:二值圖反轉(黑白反轉)
#閾值 二值圖像
cv.imshow('binary', binary)cv.waitKey(0)

python:

# 灰度圖與二值圖
# 注:二值圖必須由灰度圖轉化
import cv2 as cvimg = cv.imread('Resource/test.jpg')
cv.imshow('img', img)# 1、灰度圖像
imgray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#                           類型
cv.imshow('imggray', imgray)# 2、二進制圖像
ret, binary = cv.threshold(imgray, 127, 255, 0)
#閾值 二值圖像
cv.imshow('binary', binary)cv.waitKey(0)

參考資料

https://baike.baidu.com/item/%E4%BA%8C%E5%80%BC%E5%9B%BE%E5%83%8F/5166431?fr=aladdin

https://blog.csdn.net/weixin_42296411/article/details/80901080?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-2-80901080.pc_agg_rank_aggregation&utm_term=threshold%E5%87%BD%E6%95%B0&spm=1000.2123.3001.4430

總結

以上是生活随笔為你收集整理的OpenCV(基础补充)图像二值化的全部內容,希望文章能夠幫你解決所遇到的問題。

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