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


猜你喜欢
- 1.查询数据库当前进程的连接数: select count(*) from v$process; 2.查看数据库当前会话的连接数: elec
- 在使用reflect包获取函数,并调用时,总出现这个报错:panic: reflect: call of reflect.Value.Cal
- 本文主要介绍了python图片转为矢量图,分享给大家,具体如下:import numpy as npimport matplotlib.py
- Python中可以使用for循环实现累加求和for循环语法:for 变量 in range(x):循环需要执行的代码如下实现1到n求和:de
- python-tkinter 实现各种个样的撩妹鼠标拖尾,效果图展示:系统的拖尾已经无法满足我们了,女朋友叫你把鼠标拖尾换成她的照片,让你时
- 本文实例讲述了python中pass语句用法。分享给大家供大家参考。具体分析如下:1、空语句 do nothing2、保证格式完整3、保证语
- python压缩和解压缩模块之zlib由于早期的zlib和Python之间不兼容,故推荐1.1.4以后的版本。导入zlib后可以查看版本号&
- 由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对C
- 环境配置pip install pyqt5 (安装pyQT5库):pyuic5包含在内pip install pyqt5-tools (安装
- cgi.h #ifndef CGI_H#define CGI_H#include <stdio.h>#include <s
- 本文实例为大家分享了JS实现倒计时图文效果的具体代码,供大家参考,具体内容如下<body><img src="i
- 1、例子:拟合一种函数Func,此处为一个指数函数。出处:SciPy v1.1.0 Reference Guide#Headerimport
- 前言“幸运牛牛套圈圈”套住欢乐,圈住幸福,等你来挑战!哈喽,大家上午好,我是你们的栗子同学,今天来给
- 以前没怎么仔细的研究过ajax,只是用到了就直接拿过来用,发现了问题再找解决方法.以下是我在找解决问题的过程中的一点小小的总结. 一.谈Aj
- sys模块提供了与python解释器紧密相关的一些变量和函数。sys部分常用函数函数说明path获取模块文件搜索路径的字符串,或临时指定新搜
- 本文实例讲述了python根据给定文件返回文件名和扩展名的方法。分享给大家供大家参考。具体分析如下:这段代码可以根据文件的完整路径返回文件名
- decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持1.可以传递给Decimal整型或者字符串参数,但不能是浮
- 创建测试表-- ------------------------------ Table structure for check_test-
- 写在前面嗯,学习GO,所以有了这篇文章博文内容为《GO语言实战》读书笔记之一主要涉及映射相关知识你要爱就要像一个痴情的恋人那样去爱,像一个忘
- 需求分析现在是 "图片为王"的时代,在浏览一些网站时,经常会看到类似于这种满屏都是图片。图片大小不一,却按空间排列,就这