【计算机视觉】人脸算法之图像处理基础知识(三)

图像处理基础知识(三)

1.图像二值化

顾名思义,图像二值化是指一张图像上只有两种大小的像素值,常用的是0和255,0表示背景,255表示前景。这种处理方式是非常重要的,大部分的图像处理都会经历该操作。

python 复制代码
import cv2

imgpath = "images/img1.jpg"
img = cv2.imread(imgpath, 0) #以灰度化的方式加载图像
img = cv2.resize(img, (img.shape[1]//2, img.shape[0]//2))
threshold,dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) #二值化操作
cv2.imshow("dst", dst)
cv2.waitKey(0) 

上述代码中,cv2.threshold中127为给定阈值,255表示最大值,cv2.THRESH_BINARY二值化类型,在此代码中表示将小于127的像素值置为0,大于等于127的置为255。二值化类型有非常多种,可详细查看该函数的用法。threshold返回阈值,我们给定的127,所以这个代码中是127。dst则是返回二值化图像。

python 复制代码
import cv2

imgpath = "images/img1.jpg"
img = cv2.imread(imgpath, 0) #以灰度化的方式加载图像
img = cv2.resize(img, (img.shape[1]//2, img.shape[0]//2))
threshold,dst = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU) #自动求解阈值
print(threshold) #123.0
cv2.imshow("dst", dst)
cv2.waitKey(0) 

这是更加常用的一种方法,自动求解阈值,俗称大津法。此时我们将阈值设为0,而算法会自动找到最佳阈值,threshold=123.0

由于我们手动设置阈值和自动阈值很接近,所以二值化后的图像差异不明显。后种方法是我们更加常用的方法。

相关推荐
小玮看世界7 分钟前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
黎阳之光12 分钟前
数字孪生赋能全域水网,实现水资源管控与节水降碳双向提升
人工智能·物联网·算法·安全·数字孪生
随意起个昵称22 分钟前
【BFS】冰面滑行
算法·宽度优先
(Charon)2 小时前
【C++】定时器进阶:使用最小堆管理定时任务
c++·算法
hansang_IR2 小时前
【题解】 [省选联考 2021 A/B 卷] 卡牌游戏
c++·算法
这个DBA有点耶2 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
贾伟康2 小时前
【口算王|01】HarmonyOS ArkTS 口算题生成实战:按年级、运算类型和难度生成可控题目
算法·harmonyos·arkts·随机生成·口算题
lzx_0022 小时前
C++11(一)
开发语言·c++·算法
529宝宝起名网2 小时前
用 Python 实现名字寓意评分算法:基于 NLP 语义分析的名字内涵深度评估
python·算法·自然语言处理
带多刺的玫瑰4 小时前
Leecode#26刷题之删除有序数组中的重复项
数据结构·算法·leetcode