opencv-python
文章平均质量分 77
基于python的opencv教程
我是一个对称矩阵
这个作者很懒,什么都没留下…
展开
-
图像形变的两种方法:前向映射与反向映射
前向映射这种方式有一个缺点,在图像旋转中,原图的坐标和新图的坐标不是一一对应的。在这个过程中,原图中多个像素点(左图红点)经过计算和取整后,可能映射到新图的同一个坐标点(右图红点),造成一些像素点永远没有对应的映射点(右图黑点),这些黑点最终呈现的就是背景色。顾名思义,反向映射就是根据新图坐标,计算其在原图中的坐标点,然后将原图中像素点值复制到新图中即可。我们知道原图中一个像素点的位置,可以通过计算得到这个像素点旋转后在新图中的位置,然后判断这个新的坐标是否在图像内,然后赋值,这就是前向映射。原创 2024-07-24 17:13:06 · 596 阅读 · 0 评论 -
opencv-python(七):几何变换
0. 图像几何变换图像几何变换是指对图像进行缩放、平移、旋转、仿射变换、偏移变换等。首先明确一点,图像是以矩阵存储的,所以对图像的操作即是对矩阵的操作,对图像的平移、旋转、变换等就是对矩阵的平移、旋转、变换。我们知道在线性代数中,要使得矩阵X变换到矩阵Y,需要一个变换矩阵设为M,偏移量设为B,可以用公式表示:Y=M⋅XT+B Y=M·X^T+B Y=M⋅XT+B一下为常用的变换矩阵M(有可能和其他地方给出的矩阵不太一样,这取决于是M⋅XTM·X^TM⋅XT还是XT∗MX^T*MXT∗M):1. 扩展原创 2021-02-16 15:34:58 · 382 阅读 · 0 评论 -
opencv-python掩膜操作(进阶篇之颜色追踪)
对于掩膜操作原理,参考:opencv-python掩膜操作对于HSV颜色空间,参考:opencv-python(六):颜色空间及转换在上一篇,我们讲了掩膜的基本操作原理,现在我们如何使用掩膜+颜色来对图像中特定的颜色进行操作?我们现在要实现追踪摄像头捕获图像中的蓝色物体:捕获帧图像将颜色空间转换到HSV设定蓝色阈值,制作掩膜对帧图像进行掩膜操作,留下含蓝色部分的区域实现代码:import cv2import numpy as npcap = cv2.VideoCapture(0)原创 2021-02-16 11:59:29 · 3458 阅读 · 0 评论 -
opencv-python(六):颜色空间及转换
0. 颜色模式RGB 模式(百万种颜色)CMYK 模式(四种印刷色)索引模式(256 种颜色)灰度模式(256 级灰度)位图模式(两种颜色)0.1 灰度模式也就是灰度图(黑白照片),每个像素只有明暗变化,用0~255共256个亮度级来表示,用8个bit来表示,所以每个像素信息用8bit储存.0.2 位图模式(二值图像)即只有纯黑和纯白两种亮度,没有渐变的亮度级,通常用0表示纯黑,1表示纯白,所以每个像素信息用1bit表示即可0.3 RGB模式:基于发光体(电子产品)的色彩模式即用原创 2021-02-16 11:57:35 · 8535 阅读 · 4 评论 -
opencv-python(五):图像的算数运算
0. 注意图像的本质就是矩阵,所以要以矩阵的眼光来理解1. 加减法1.1 加法 img1+img2:将两幅图像对应位置的像素相加(尺寸类型相同) img1+50:将img1全部像素+50,提高了整体亮度1.2 减法 img1-img2:两幅相同尺寸的图相减 img-50:将img1全部像素-50,降低了整体亮度将img1全部像素+50,提高了整体亮度右边两幅图是左边两幅图相减做差的结果,对于左边两幅图的差别不易观察,但是做差后就很明显1.2 图像混合图像混合的数学公式:g原创 2021-02-13 14:54:48 · 285 阅读 · 0 评论 -
opencv-python(四):图像的基础操作
1. 像素值的获取2. 像素值的修改3. 获取图像属性4. 图像ROI5. 图像通道操作6. 图像扩边标号通道0B1G2R灰度图: pos=img[x,y] #输出(x,y)像素点的值,比如206img=cv2.imread("donald_trump.jpg") # 以彩色模式读入img_gray=cv2.imre原创 2021-02-12 19:55:12 · 469 阅读 · 0 评论 -
opencv-python掩膜操作
时我们需要给一张图片添加logo,例如下图这样在这里插入图片描述掩膜操作思路它的思想是:1.1 先将彩色图像转换为灰度图,然后利于阈值将图像二值化,变成非黑即白的形式,这样logo的蒙版就做好来了(学过PS的人应该很容易理解);1.2 蒙版中黑色的区域表示删除掉该区域像素,白色表示保留该区域像素。黑色是0,白色是255;1.3 所以利用二值化得到的蒙版(掩膜)是剔除logo区域的。反之,是用来提出logo上的多余区域的;1.4 如何剔除掉小姐姐照片中的logo区和logo上的空白区域呢,..原创 2021-02-10 19:04:39 · 2958 阅读 · 1 评论 -
opencv-python(三):画图
1. opencv的绘图函数都有相同的参数,所以现列举所有的绘图函数,统一介绍其参数 cv2.line():划线 cv2.circle():划圆 cv2.ellipse():画椭圆 cv2.rectangle():画矩形 cv2.polylines():画多边形 cv2.putText():图片上添加文字所有的函数都有如下参数:img:你想要绘制图像的那幅图像color:形状的颜色,传入一个元组RGB格式,例如:(255,0,0)thickness:线条的粗细(整数)。默认值是1,原创 2021-02-06 13:07:30 · 573 阅读 · 0 评论 -
opencv-python(二):视频操作
0. 目标读取、显示和保存视频文件从摄像头获取并显示视频1. 摄像头捕获视频 cv2.VideoCapture(mode):mode可以是视频文件,也可以是摄像头设备数字:代表设备索引号,通常单个摄像头,则0就是该摄像头视频文件路径:视频文件cap=VideoCapture(0) #使用我的笔记本内置摄像头,创建了cap这样一个对象 cap.isOpend():摄像头是否正确打开,返回值为布尔值类型 cap.open():打开摄像头 cap.read():返回两个量原创 2021-02-04 20:11:19 · 1386 阅读 · 0 评论 -
opencv-python(一):图片的读入、显示和保存
1. 读入图像cv2.imread(path,mode):path是图像的路径,mode是读入图片时的模式:cv2.IMREAD_COLOR:读入彩色图像,忽略透明度cv2.IMREAD_GRAYSCALE:以灰度模式读入图像cv2.IMREAD_UNCHANGED:读入图像,包括alpha通道# 以彩色图模式读取lena.jpg图片,并给变量imgimg=cv2.imread("lena.jpg",cv2.IMREAD_COLOR)2. 创建面板一般可以先创建一个面板,再在给面板显示原创 2021-02-04 17:54:19 · 971 阅读 · 1 评论
分享