您的位置:首页技术文章
文章详情页

基于python图像处理API的使用示例

【字号: 日期:2022-07-31 09:41:20浏览:2作者:猪猪

1.图像处理库

import cv2 as cvfrom PIL import *

常用的图像处理技术有图像读取,写入,绘图,图像色彩空间转换,图像几何变换,图像形态学,图像梯度,图像边缘检测,图像轮廓,图像分割,图像去噪,图像加水印以及修复水印等

2.opencv常用的接口

cv.imread() 读取图片,返回numpycv.imwrite() 写入图片cv.cvtColor() 图像色彩空间转换cv.add()cv.subtract()cv.multiply()cv.divide()cv.applyColorMap() 减少了运算量,改变图片风格,突出图片特征cv.bitwise_and(参数1, 参数2) 逻辑与cv.bitwise_xor(参数1, 参数2) 逻辑异或cv.bitwise_or(参数1, 参数2) 逻辑或cv.bitwise_not(参数) 图像值取反操作cv.split(src) 通道分离cv.merge(mv) 通道合并cv2.inRange(hsv, lower, upper) 提取指定色彩范围区域inRangecv.meanStdDev() 均值和标准差cv.minMaxLoc() 最大最小值和相应的位置cv.normalize() 像素归一化cv.VideoCapture() 视频文件cv.flip(src,flipcode,dst) 图像翻转cv.rectangle() 矩形cv.circle() 圆cv.ellipse() 椭圆cv.calcHist() 图像直方图cv.equalizeHist() 图像直方图均衡化可以用于图像增强、对输入图像进行直方图均衡化处理,提升后续对象检测的准确率cv.compareHist() 图像直方图比较,就是计算两幅图像的直方图数据,比较两组数据的相似性,从而得到两幅图像之间的相似程度cv.calcBackProject() 图像直方图反向投影是通过构建指定模板图像的二维直方图空间与目标的二维直方图空间,进行直方图数据归一化之后, 进行比率操作,对所有得到非零数值,生成查找表对原图像进行像素映射之后,再进行图像模糊输出的结果cv.blur() 均值图像模糊卷积cv.GaussianBlur() 高斯模糊均值模糊 是卷积核的系数完全一致,高斯模糊考虑了中心像素距离的影响,对距离中心像素使用高斯分布公式生成不同的权重系数给卷积核,然后用此卷积核完成图像卷积得到输出结果就是图像高斯模糊之后的输出cv.medianBlur() 中值滤波对图像特定噪声类型(椒盐噪声)会取得比较好的去噪效果,也是常见的图像去噪声与增强的方法之一cv.fastNlMeansDenoisingColored() 非局部均值滤波cv.bilateralFilter() 高斯双边模糊,卷积处理实现图像模糊的同时对图像边缘不会造成破坏,滤波之后的输出完整的保存了图像整体边缘(轮廓)信息cv.pyrMeanShiftFiltering() 均值迁移模糊,均值迁移模糊是图像边缘保留滤波算法中一种,经常用来在对图像进行分水岭分割之前去噪声,可以大幅度提升分水岭分割的效果cv.integral() 图像积分图算法cv.edgePreservingFilter() 快速的图像边缘滤波算法cv.filter2D() 自定义卷积核来自定义的滤波器cv.Sobel() 图像梯度提取算子,梯度信息是图像的最原始特征数据,进一步处理之后就可以生成一些比较高级的特征用来表示一张图像实现基于图像特征的匹配,图像分类等应用cv.Laplacian() 拉普拉斯算子更容易受到噪声的扰动,所以经常对要处理的图像首先进行一个高斯模糊,然后再进行拉普拉斯算子的边缘提取,而且在一些场景中会把这两步合并成为一步,就是我们经常听说的LOG算子cv.convertScaleAbs() 增强对比度cv.addWeighted() USM锐化增强算法cv.Canny() Canny编边缘检测器,有效的噪声抑制,完整边缘提取能力cv.pyrUp()cv.pyrDown() 图像金字塔cv.matchTemplate() 图像模板匹配cv.threshold() 二值化cv.adaptiveThreshold() 自适应阈值算法cv.connectedComponents() 二值图像联通组件寻找cv.connectedComponentsWithStats() 二值图像连通组件状态统计cv.findContours() 获取二值图像的轮廓拓扑信息cv.drawContours() 绘制轮廓cv.boundingRect()cv.minAreaRect() 求取轮廓外接矩形cv.contourArea() 轮廓点集计算面积cv.arcLength() 计算轮廓曲线的弧长cv.approxPolyDP() 图像二值图像的每个轮廓,可以使用轮廓逼近,逼近每个轮廓的真实几何形状,从而通过轮廓逼近的输出结果判断一个对象是什么形状cv.fitEllipse() 轮廓点进行拟合,生成一个拟合的圆形或者椭圆cv.fitLine() 直线拟合cv.dilate() 膨胀可以看成是最大值滤波,即用最大值替换中心像素点cv.erode() 腐蚀可以看出是最小值滤波,即用最小值替换中心像素点cv.getStructuringElement() 获取结构元素cv.morphologyEx() 形态学的操作 开操作可以删除二值图像中小的干扰块,降低图像二值化之后噪点过多的问题 操作可以填充二值图像中孔洞区域,形成完整的闭合区域连通组件 顶帽操作有时候对于我们提取图像中微小部分特别有用cv.inpaint() 图像修复cv.findHomography()cv.warpPerspective() 透视变换cv.kmeans() KMeans数据分类cv.QRCodeDetector()cv.QRCodeDetector.detectAndDecode() 二维码检测与识别

3.PIL库接口

Image.fromarray() 将numpy图像转ImageImageFont.truetype('china.ttf', size=30) 加载图像字体库ImageDraw.Draw() 绘图draw.text() 图像上添加水印

到此这篇关于基于python图像处理API的使用示例的文章就介绍到这了,更多相关python 图像处理API内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Python 编程
相关文章: