OpenCV半小时掌握基本操作之图像处理

作者:我是小白呀 时间:2022-06-05 06:20:23 

【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️图像处理

概述

OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

二值化操作

格式:


ret, dst = cv2.threshold(src, thresh, maxval, type)

参数:

  • src: 需要转换的图

  • thresh: 阈值

  • maxval: 超过阈值所赋的值

  • type: 二值化操作类型

返回值:

  • ret: 输入的阈值

  • dst: 处理好的图片

原图

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

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()

输出结果:

OpenCV半小时掌握基本操作之图像处理

来源:https://blog.csdn.net/weixin_46274168/article/details/118852987

标签:OpenCV,图像处理,python
0
投稿

猜你喜欢

  • 微信小程序访问mysql数据库流程详解

    2024-01-23 10:34:43
  • django将网络中的图片,保存成model中的ImageField的实例

    2023-12-23 01:11:33
  • python pipeline的用法及避坑点

    2022-05-11 08:35:00
  • PHP中定义数组常量(array常量)的方法

    2023-11-23 06:16:59
  • Python的内置数据类型中的数字

    2023-12-29 19:36:37
  • python给视频添加背景音乐并改变音量的具体方法

    2021-01-26 20:18:47
  • 了解WEB页面工具语言XML(四)应用分类

    2008-09-05 17:18:00
  • PHP实现逐行删除文件右侧空格的方法 <font color=red>原创</font>

    2023-11-22 05:11:25
  • 发布淘宝开源编辑器 KISSY Editor 1.0.0

    2009-10-27 16:20:00
  • JavaScript设置获取和设置属性的方法

    2024-05-22 10:35:34
  • 解读python中的类型提示(type hint)

    2023-07-15 20:16:27
  • 使用JS轻松实现ionic调用键盘搜索功能(超实用)

    2024-04-17 10:26:21
  • python缺失值填充方法示例代码

    2023-06-28 12:23:24
  • 基础语音识别-食物语音识别baseline(CNN)

    2023-04-05 22:44:11
  • 巧用Dreamweaver MX控制页面元素

    2009-09-13 18:38:00
  • 利用Python实现颜色色值转换的小工具

    2021-09-12 07:44:15
  • Go每日一库之dateparse处理时间

    2024-04-26 17:25:55
  • 初识Golang Mutex互斥锁的使用

    2024-05-09 09:39:57
  • Git Submodule使用完整教程(小结)

    2022-06-29 21:01:06
  • 使用Python测试Ping主机IP和某端口是否开放的实例

    2022-01-07 13:14:47
  • asp之家 网络编程 m.aspxhome.com