OpenCV半小时掌握基本操作之图像处理
作者:我是小白呀 时间:2022-06-05 06:20:23
【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️图像处理
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.
图像处理
图像处理是非常基础和关键的, 今天就带大家来一起了解一下图像处理.
转换图像
cv.cvtColor
可以帮助我们转换图片通道.
格式:
cv2.cvtColor(src, code[, dst[, dstCn]])
参数:
src: 需要转换的图片
code: 颜色空间转换码
dst: 输出图像大小深度相同, 可选参数
desCn: 输出图像的颜色通道, 可选参数
转换成灰度图
RGB 到灰度图转换公式:
Y' = 0.299 R + 0.587 G + 0.114 B
例子:
# 读取数据
img = cv2.imread("cat.jpg")
# 转换成灰度图
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 输出维度
print(img_gray.shape) # (554, 640)
# 展示图像
cv2.imshow("img_gray", img_gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
HSV
HSV (Hue, Saturation, Value) 是根据颜色的直观特性由 A.R. Smith 在 1978 年创建的一种颜色空间.
例子:
# 转换成hsv
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 输出维度
print(img_hsv.shape) # (554, 640, 3)
# 展示图像
cv2.imshow("img_hsv", img_hsv)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
YUV
YUV 是一种颜色编码的方法, 主要用在视频, 图形处理流水线中.
例子:
# 读取数据
img = cv2.imread("cat.jpg")
# 转换成hsv
img_yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
# 输出维度
print(img_yuv.shape) # (554, 640, 3)
# 展示图像
cv2.imshow("img_yuv", img_yuv)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
二值化操作
格式:
ret, dst = cv2.threshold(src, thresh, maxval, type)
参数:
src: 需要转换的图
thresh: 阈值
maxval: 超过阈值所赋的值
type: 二值化操作类型
返回值:
ret: 输入的阈值
dst: 处理好的图片
原图
Binary
大于阈值的设为 255, 低于或等于阈值的为 0.
例子:
# 读取数据
img_gray = cv2.imread("cat_gray.jpg")
# 二值化
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
# 图片展示
cv2.imshow("thresh1", thresh1)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
Binary Inverse
与 Binary 相反.
例子:
# 读取数据
img_gray = cv2.imread("cat_gray.jpg")
# 二值化
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
# 图片展示
cv2.imshow("thresh2", thresh2)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
Trunc
大于阈值的设为 255, 低于或等于阈值的不变.
例子:
# 读取数据
img_gray = cv2.imread("cat_gray.jpg")
# 截断
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
# 图片展示
cv2.imshow("thresh3", thresh3)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
Tozero
大于阈值部分不变, 否则设为 0.
代码:
# 读取数据
img_gray = cv2.imread("cat_gray.jpg")
# Tozero
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
# 图片展示
cv2.imshow("thresh4", thresh4)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
Tozero Inverse
与 Tozero 相反.
代码:
# 读取数据
img_gray = cv2.imread("cat_gray.jpg")
# Tozero
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)
# 图片展示
cv2.imshow("thresh5", thresh5)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果:
来源:https://blog.csdn.net/weixin_46274168/article/details/118852987
标签:OpenCV,图像处理,python
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python 机器学习工具包SKlearn的安装与使用
2023-11-10 13:13:05
![](https://img.aspxhome.com/file/2023/4/103344_0s.png)
Python获取当前函数名称方法实例分享
2023-12-22 01:16:57
Python检测一个对象是否为字符串类的方法
2022-11-02 15:25:24
Python-OpenCV实现图像缺陷检测的实例
2023-02-16 19:38:46
![](https://img.aspxhome.com/file/2023/1/92421_0s.jpg)
PHP面向对象程序设计之类常量用法实例
2023-11-22 15:17:39
python+matplotlib演示电偶极子实例代码
2021-07-09 12:52:35
![](https://img.aspxhome.com/file/2023/3/77673_0s.jpg)
另类读写:ACCESS中Field对象的标题属性
2008-11-28 16:47:00
python在命令行下使用google翻译(带语音)
2023-06-02 13:47:17
网页布局设计基础
2008-10-16 13:58:00
在Django中Pyecharts生成图表实现
2023-07-27 08:16:32
![](https://img.aspxhome.com/file/2023/4/105404_0s.png)
python目标检测YoloV4当中的Mosaic数据增强方法
2022-03-29 06:48:14
![](https://img.aspxhome.com/file/2023/4/111864_0s.png)
(小技巧)复制消息对话框的内容
2008-10-21 10:51:00
oracle数据库冷备份的方法
2023-07-19 09:51:19
重新认识CSS的权重
2011-05-24 17:06:00
python实现简单中文词频统计示例
2022-04-17 16:54:35
![](https://img.aspxhome.com/file/2023/7/101557_0s.png)
python中pathlib模块的基本用法与总结
2023-12-11 15:54:17
![](https://img.aspxhome.com/file/2023/3/105453_0s.png)
Zabbix实现微信报警功能
2021-10-17 04:40:05
![](https://img.aspxhome.com/file/2023/7/115227_0s.png)
从品牌网站看交互设计
2009-08-18 12:39:00
![](https://img.aspxhome.com/file/UploadPic/20098/18/1-31s.jpg)
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2021-05-28 06:30:24
![](https://img.aspxhome.com/file/2023/3/98803_0s.png)
Python OpenCV实现姿态识别的详细代码
2023-05-27 23:42:31
![](https://img.aspxhome.com/file/2023/9/78719_0s.jpg)