![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
GISer_Lin
do what i love, love what i do
展开
-
opencv学习4——图像缩放
一、通过调用api实现尺寸的改变cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None) 图像尺寸改变scr:原图片;dsize:输出图像尺寸;fx:沿水平轴的比例因子;fy:沿垂直轴的比例因子;interpolation:插值方法,包括:cv2. INTER_LINEAR,双线性插值(缺省);cv2.INT...原创 2018-09-16 22:32:00 · 3045 阅读 · 0 评论 -
opencv学习17——油画效果
一、图像油画效果1.类似于马赛克及毛玻璃效果,也是卷积操作的一种2.基本原理:将在计算某点像素值时,通过计算周围区域的某些像素值得到本点像素值1)确定基本区域范围2)将灰度全值(0-255)划分等级3)统计基本区域内各像素的对应的等级,等级频率最高的等级及其频数4)计算区域内属于次最高频率等级像素的彩色像素值的均值3.此代码中,为了快速运行,处理范围设置为300*3...原创 2018-10-06 23:16:27 · 3266 阅读 · 6 评论 -
opencv学习18——浮雕效果
一、浮雕效果1.基本原理:根据像素与周围像素的差值确定像素值,差别较大的像素(边缘点通常像素差别较大)像素值较大,在灰度图中表现为较亮,边缘凸显,形成浮雕状,然后加上一个灰度偏移值,作为图片的整体底色。2.八向浮雕:最基本的浮雕效果,根据像素值与周围八个方向的像素值的插值确定新的方向,常用于右下进行做差3.调和浮雕,综合像素与左上、右上、左下、右下四个方向的差值确定新像素4.相...原创 2018-10-07 10:05:29 · 3438 阅读 · 0 评论 -
opencv学习19——边缘检测
一、1.调用api实现边缘检测:1)读入灰度图像2)使用高斯滤波去除图像中的一些噪声点,平滑图像3)使用canny边缘检测算法2. cv2.GaussianBlur(img,size,sigmax),高斯滤波,去除图像噪声点,使图像整体平滑 img,原图像 size,滤波窗口/高斯矩阵尺寸(通常为奇数),越大越模糊 sigmax,...原创 2018-10-07 11:25:08 · 202 阅读 · 0 评论 -
opencv学习20——图形绘制
import cv2import numpy as npimgShape = (500,500,3)dstImg = np.zeros(imgShape,np.uint8)# 线段绘制,参数:目标图像,起点,终点,颜色,宽度cv2.line(dstImg,(100,200),(400,200),(255,0,255),20)# 矩形绘制,参数:目标图像,左上角、右下角,线条颜色...原创 2018-10-07 16:42:51 · 329 阅读 · 0 评论 -
opencv学习21——文字绘制
import cv2import numpy as npimgShape = (500,500,3)dstImg = np.zeros(imgShape,np.uint8)font = cv2.FONT_HERSHEY_SIMPLEX # 定义字体# 绘制文字,参数:目标图像,目标文字,左下角放置位置,字体类型,字体大小,颜色,填充宽度,线...原创 2018-10-07 16:48:16 · 349 阅读 · 0 评论 -
opencv学习22——直方图绘制
一、灰度直方图:各像素值的频率分布1.使用matplotlib模块可以快速获取、绘制灰度直方图2.cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) opencv中的直方图计算函数Images,原图像,必须在中括号中给出,且矩阵数据类型为uint8或float32Chan...原创 2018-10-08 21:27:31 · 335 阅读 · 0 评论 -
opencv学习23——直方图均衡化
一、直方图均衡化1.实质:通过某种映射关系,将直方图中较为集中的部分均衡化,较为均衡地分布2. cv2.equalizeHist(),直方图均衡化3.彩色直方图均衡化,将图像矩阵拆分为各个单通道矩阵,分别均衡化后,再合并各通道矩阵。二、1.#灰度直方图均衡化import cv2grayImg = cv2.imread('image01.jpg',0)cv2.i...原创 2018-10-08 23:02:24 · 273 阅读 · 0 评论 -
opencv学习24——图像简单修复
一、图像的简单修复1.实现过程:通过蒙版图像(提取的污损部分图像),通过算法使用周围像素填充2. cv2.inpaint(src, inpaintMask, inpaintRadius, flags[, dst])Src,需要修补的原图像inpaintMask,修补蒙版inpaintRadius,修补半径flags,修补算法,有基于快速行进算法 cv2.INPAINT_...原创 2018-10-09 21:28:38 · 1073 阅读 · 0 评论 -
opencv学习25——图像亮度增强
一、图像亮度增强1.实现过程:对每个像素点的三通道值进行同步放大,同时保持通道值在0-255之间2.map(f,list),将函数f作用于整个列表,返回新列表3.np.clip(a, a_min, a_max, out=None),将a中的元素限制在最小值和最大值之间,超过此区间的值赋值为最小值或最大值二、import cv2import numpy as npde...原创 2018-10-17 08:51:29 · 4513 阅读 · 0 评论 -
opencv学习26——滤波器
一、图像滤波1.滤波:过滤掉特定频率的波段,在图像处理中一般指去除图像噪声点,使图片整体变平滑2.opencv提供的几种滤波函数1)自定义滤波/二维滤波cv2.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])src:原图像ddepth:输出图像通道深度,-1表示与原图像通道深度相同...原创 2018-10-29 18:46:05 · 412 阅读 · 0 评论 -
opencv学习27——从视频文件获取图像
import cv2cap = cv2.VideoCapture("video01.avi") # 获取视频对象isOpened = cap.isOpened # 判断是否打开# 视频信息获取fps = cap.get(cv2.CAP_PROP_FPS)width = int(cap.get(cv2.C...原创 2018-11-04 20:00:45 · 1775 阅读 · 0 评论 -
opencv学习28——拍摄录像
# 使用前在相机设置中设置为打开状态import cv2cap = cv2.VideoCapture(0) # 获取视频对象,设备号0、1等代表从各摄像头获取,也可以设置从视频路径获取if(not cap.isOpened()): # 确保视频可读取 cap.open('video.avi')fps = cap.get(cv2.CA...原创 2018-11-04 20:14:58 · 449 阅读 · 0 评论 -
opencv学习29——简单屏幕录制
from PIL import ImageGrabimport numpy as npimport cv2fps = 20start = 3 # 延时录制end = 15 # 自动结束时间curScreen = ImageGrab.grab() # 获取屏幕对象height, width = curScreen.sizevideo = c...原创 2018-11-04 21:53:37 · 1973 阅读 · 0 评论 -
opencv学习16——颜色映射
一、图像颜色映射1.实质是色彩通道的变换计算2.实际应用中,常根据需要设计合适的色彩映射表,即原图中颜色对应变换颜色的变换关系(色彩反转也是于一种特殊的颜色映射)二、# 颜色增强:蓝色增强import cv2import numpy as npimg = cv2.imread('image01.jpg',1)imgHeight,imgWidth,imgDeep =...原创 2018-10-06 20:52:21 · 1394 阅读 · 0 评论 -
opencv学习15——色彩翻转
一、图像色彩反转1.实质是像素值的减法计算2. gray = 255 - gray(b,g,r) = 255 – (b,g,r)二、1.# 灰度图片的色彩反转import cv2import numpy as npimg = cv2.imread('image01.jpg',1)imgHeight,imgWidth,imgDeep = img.shape...原创 2018-10-04 23:06:32 · 269 阅读 · 0 评论 -
Python opencv3安装
Python opencv3安装及配置安装环境:win10 64;python3.6 64;pycharm2017;opencv3.4.3方法一:使用pip命令安装在运行(win+R打开)使用cmd命令进入dos窗口后,使用pip install 库名,进行安装,这里的库名为opnecv-python,注意库名区分大小写方法二:在pycharm安装在pycharm中点击...原创 2018-09-13 15:23:59 · 8505 阅读 · 0 评论 -
opencv学习1——图像读入及显示
一、个人主要依据慕课网opencv+tensorflow入门人工智能图像处理课程进行学习操作(链接:https://pan.baidu.com/s/1-y5zxTb2R4f4OdOxFQaY1A 密码:bxwk),也部分参考官方文档进行理解(https://opencv-python-tutroals.readthedocs.io/en/latest/index.html#)二、首先,...原创 2018-09-13 16:17:36 · 477 阅读 · 1 评论 -
opencv学习2——图像写入
一、1.图像写入函数cv2.imwrite(),参数1为要保存的文件路径,参数2为要写入的图像2.在cv2.imwrite()中,对jpg格式追加参数[cv2.IMWRITE_JPEG_QUALITY,n],n为有损图像压缩比,范围[0~100],缺省100;对png格式追加参数[cv2.IMWRITE_PNG_COMPRESSION,n],n为无损压缩比,范围[0~9],缺省0;...原创 2018-09-13 16:39:55 · 843 阅读 · 0 评论 -
opencv学习5——图像的简单裁剪
一、1.裁剪实质:将裁剪区域存放新数组并展示# cut extent: height: 200~500, width:200~1200import cv2img = cv2.imread('image01.jpg',1)dstImg = img[200:500,200:1200]cv2.imshow('image',dstImg)cv2.waitKey(0)cv2.d...原创 2018-09-18 22:30:41 · 8966 阅读 · 0 评论 -
opencv学习6——图像移动
一、API实现1.实质构建大矩阵,将原矩阵元素写入新矩阵2.使用API涉及矩阵的变换3. 仿射变换函数cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])src,输入图像。M,变换矩阵。Dsize,输出图像的大小(列行值),(cols,rows)flags,插值方法的组合bord...原创 2018-09-18 23:33:46 · 1415 阅读 · 0 评论 -
opencv学习11——灰度图像读取
一、灰度图像读取,4中实现方式1.cv2.imread(image,0),在图像读取方法中使用0或者cv2.IMREAD_GRAYSCALE读取灰度图2. cv2.cvtColor(image,cv2.COLOR_BGR2GRAY),在图像以BGR形式读取完毕后,使用图像色彩转换的方法cvt将图像有BGR转换为灰度图3.使用代码将BGR格式图像转换为灰度图,转换公式:gray = (b...原创 2018-09-24 21:31:36 · 38979 阅读 · 0 评论 -
opencv学习3——像素基本操作
一、1.图片以像素为单位,可以看做一个二维数组/矩阵,维度分别为长度、宽度,数组中的每个元素代表改点像素值。2.对于彩色图片,像素又可以进一步划分红绿蓝3通道,这时图片可看作三维数组,第三维度为通道数3,所以也可以看做3个二维数组的叠加,每个二维数组分别代表图片各像素点对应的红、绿、蓝通道值。3.图像宽高从左上角开始计算4.通道顺序:蓝、绿、红二、# 像素操作基础...原创 2018-09-14 22:33:40 · 304 阅读 · 2 评论 -
opencv学习7——图像镜像效果
一、1.实质:数组的扩写2.扩大图像尺寸,Height/Width *= 23.写入像素,在增加部分反向写入,实现对称的镜像效果二、# 垂直镜像实现import cv2import numpy as npimg = cv2.imread('image01.jpg',1)imgHeight,imgWidth,imgMode = img.shapedstImg ...原创 2018-09-20 22:08:23 · 852 阅读 · 0 评论 -
opencv学习8——图像缩放(矩阵变换)
一、1.图片仿射变换之图片移动,2.cv2.warpAffine,将其中的变换矩阵变为(coe代表缩放比例)结果:实现缩放二、# 图像缩放的矩阵操作实现方法import cv2import numpy as npcoe = 0.4img = cv2.imread('image01.jpg',1)imgHeight,imgWidth,imgMode =...原创 2018-09-20 22:28:16 · 3159 阅读 · 0 评论 -
opencv学习12——马赛克实现
一、图像马赛克效果1.将马赛克区域划分为若干矩阵,2.每个矩阵使用最左上角像素值进行填充二、import cv2img = cv2.imread('image01.jpg',1)imgHeight,imgWidth,imgDeep = img.shape# 定义效果区域范围及基本填充范围widthRange = [300,400]heightRange = [1...原创 2018-10-02 21:18:46 · 793 阅读 · 0 评论 -
opencv学习13——毛玻璃效果
一、图像毛玻璃效果1.马赛克是指定范围内的统一填充,毛玻璃是指定范围内的随机取值2.np.random.random(),随机产生[0,1]内的数二、import cv2import numpy as npimg = cv2.imread('image01.jpg', 1)imgHeight, imgWidth, imgDeep = img.shapedst = ...原创 2018-10-02 21:50:18 · 678 阅读 · 0 评论 -
opencv学校14——图像融合
一、图像融合/叠加1.实质是对指定范围的图像A、B的像素值按权重重写2. cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])src1 :图像矩阵A.alpha : A的权重src2 : 图像矩阵Bbeta : B的权重gamma:结果矩阵的整体增加量3. dst = src1 * alp...原创 2018-10-03 23:17:04 · 228 阅读 · 0 评论 -
opencv学习9——图像旋转(待续)
一、1.图像旋转,矩阵变换2. cv2.getRotationMatrix2D((x,y),angle,scale) 得到旋转矩阵(x,y)旋转中心Angle,旋转角度,单位°scale,缩放比3.旋转矩阵其中a = scale*cos angle;b = s*sin a,所以,又可以表示为二、# 图像旋转实现import cv2import num...原创 2018-09-22 09:48:01 · 182 阅读 · 0 评论 -
opencv学习10——图像的定点仿射变换
一、1.仿射变换是对多种变换的综合,包括平移、缩放、旋转2.定点仿射变换,基于给定3点的变化前后坐标,得出对应的变换关系,调用函数得出变换矩阵,并根据矩阵对图像进行仿射变换3.cv2.getAffineTransform(pst1,pst2),pst1,原矩阵;pst2,变换后矩阵。形式为二维列表,维度[3,2],代表3个点变化前后的坐标二、# 定点仿射变换impor...原创 2018-09-22 09:49:15 · 1231 阅读 · 0 评论