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

图像处理基础知识(三)

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

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

相关推荐
innutritious13 分钟前
车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27
人工智能·深度学习·计算机视觉
Indigo_code2 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
阿史大杯茶2 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
LluckyYH3 小时前
代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会
算法·深度优先·动态规划·软件构建·图论·dfs
转调3 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
不穿格子衬衫4 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序
wdxylb4 小时前
使用C++的OpenSSL 库实现 AES 加密和解密文件
开发语言·c++·算法
aqua35357423584 小时前
蓝桥杯-财务管理
java·c语言·数据结构·算法
CV金科4 小时前
蓝桥杯—STM32G431RBT6(IIC通信--EEPROM(AT24C02)存储器进行通信)
stm32·单片机·嵌入式硬件·算法·蓝桥杯
sewinger4 小时前
区间合并算法详解
算法