OpenCV半小时掌握基本操作之图像处理
作者:我是小白呀 发布时间:2022-06-05 06:20:23
标签:OpenCV,图像处理,python
【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
0
投稿
猜你喜欢
- 说明和代码如下:<%@ language = vbscript%><% 
- 对象Javascript 根本上是和对象相关的。数组是对象。函数是对象。对象是对象。那什么是对象呢?对象是名-值对的集合。名是字符串,值可以
- 我就废话不多说了,大家还是直接看例子吧!import numpy as npfrom numpy import randommatrix1
- OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特
- 1、注册一个新浪应用,得到appkey和secret,以及token,将这些信息写入配置文件sina_weibo_config.ini,内容
- 编写tasks.pyfrom celery import Celeryfrom tornado.httpclient import HTTP
- PyQt5+requests实现一个车票查询工具,供大家参考,具体内容如下结构图效果图思路1、search(QPushButton)点击信号
- 本文实例讲述了Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法。分享给大家供大家参考,具体如下:前言:想把QQ
- 1.基于OpenCV的形状检测Python版本目录结构1.1.定义我们的形状检测器类ShapeDetector开始定义我们的 ShapeDe
- 在python中利用numpy创建一个array, 然后我们想获取array的最大值,最小值。可以使用一下方法:一、创建数组这样就可以获得一
- 如今我使用 Python 已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧。例如,最早使用 Python 时,我写了一个名为
- 1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。fi
- 相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入。这个计划将移动到使绝
- 这个分页使用的是0游标,也就是Rs.Open Sql,Conn,0,1。但是感觉也快不了多少,10万条数据的分页时间300多豪秒之间。代码如
- vbscript脚本中,fso对象CreateTextFile方法调用时可能会报“无效的过程调用或参数”错误,在使用ASP生成静态页面时,如
- 本文使用pygame实现播放mp3,文中用到pygame及mutagen库,安装:pip install pygamepip install
- 如下所示:<?phpnamespace helpers;class OpensslRSA{ //echo $private_key 私
- 如下所示:def test1(): import os return1=os.system('ping 8.8.8.8')
- 张量范数:torch.norm(input, p=2) → float返回输入张量 input 的 p 范数举个例子:>>>
- 什么是.netMicrosoft® .NET 是 Microsoft XML Web services 平台。XML Web