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

 更新时间:2021年09月01日 17:29:57   作者:我是小白呀  
这篇文章主要介绍了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()

输出结果:

在这里插入图片描述

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

输出结果:

在这里插入图片描述

到此这篇关于OpenCV半小时掌握基本操作之图像处理的文章就介绍到这了,更多相关OpenCV图像处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用Matplotlib实现创建动态图形

    Python使用Matplotlib实现创建动态图形

    动态图形是使可视化更具吸引力和用户吸引力的好方法,它帮助我们以有意义的方式展示数据可视化,本文将利用Matplotlib实现绘制一些常用动态图形,希望对大家有所帮助
    2024-02-02
  • Django框架的使用教程路由请求响应的方法

    Django框架的使用教程路由请求响应的方法

    这篇文章主要介绍了Django框架的使用教程路由请求响应的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 对Python 3.5拼接列表的新语法详解

    对Python 3.5拼接列表的新语法详解

    今天小编就为大家分享一篇对Python 3.5拼接列表的新语法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    详解Python 使用 selenium 进行自动化测试或者协助日常工作

    这篇文章主要介绍了Python 使用 selenium 进行自动化测试 或者协助日常工作,我们可以使用 selenium 来帮助我们进行自动化的 Web 测试,也可以通过 selenium 操作浏览器做一些重复的,简单的事情,来减轻我们的工作
    2021-09-09
  • 模型训练时GPU利用率太低的原因及解决

    模型训练时GPU利用率太低的原因及解决

    这篇文章主要介绍了模型训练时GPU利用率太低的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python中np.where()用法具体实例

    Python中np.where()用法具体实例

    这篇文章主要给大家介绍了关于Python中np.where()用法的相关资料,np.where()是NumPy库中的一个函数,主要用于根据条件从数组中选择元素,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-08-08
  • python中类和实例如何绑定属性与方法示例详解

    python中类和实例如何绑定属性与方法示例详解

    最近在学习python,纯粹是自己的兴趣爱好,然而并没有系统地看python编程书籍,觉得上面描述过于繁琐,在网站找了一些学习的网站,下面这篇文章主要给大家介绍了关于python中类和实例时如何绑定属性与方法的相关资料,需要的朋友可以参考下。
    2017-08-08
  • pycharm重置设置,恢复默认设置的方法

    pycharm重置设置,恢复默认设置的方法

    今天小编就为大家分享一篇pycharm重置设置,恢复默认设置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python实现队列的方法

    Python实现队列的方法

    这篇文章主要介绍了Python实现队列的方法,实例分析了Python实现队列的相关技巧,需要的朋友可以参考下
    2015-05-05
  • python http基本验证方法

    python http基本验证方法

    今天小编就为大家分享一篇python http基本验证方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论