![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图像处理
文章平均质量分 68
对图像的基本操作
王乐予
这个作者很懒,什么都没留下…
展开
-
【OpenCV-Python】:基于视频的人脸检测、眼部检测与微笑检测
OpenCV中有专门用来做人脸检测、人眼检测和微笑检测的工具。在作者这个目录下:`D:\anaconda\envs\keras21\Lib\site-packages\cv2\data`,(注:kersa21是作者的虚拟环境,如果没创建虚拟环境,在anaconda下寻找Lib就可以)存在很多.xml文件,这些文件是预训练好的各器官的Haar特征。原创 2022-04-08 06:30:00 · 3823 阅读 · 4 评论 -
【OpenCV-Python】:图像金字塔之高斯金字塔与拉普拉斯金字塔
以多个分辨率来表示图像的一种有效且概念简单的结构就是**图像金字塔**。图像金字塔最初用于机器视觉和图像压缩,一个图像金字塔是一系列以金字塔形状排列的、多分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率表示,而顶部则包含一个低分辨率近似,当向金字塔的上层移动时,尺寸和分辨率降低。> (美)拉斐尔·C.冈萨雷斯(Rafael C.Gonzalez)著;阮秋琦译.国外电子与通信教材系列 数字图像处理 第3版[M].北京:电子工业出版社.2017.高斯金字塔与拉普拉斯金字塔是常见的两种原创 2022-04-07 06:30:00 · 2131 阅读 · 1 评论 -
【OpenCV-Python】:绘制凸包、构造凸缺陷
目录😺一、绘制凸包🐶1.1 函数API🐶1.2 程序设计🐶1.3 结果可视化😺二、构造凸缺陷🐶2.1 函数API🐶2.2 程序设计🐶2.3 结果可视化😺一、绘制凸包凸包是一个几何图形学中的概念,用不严谨的话来说,凸包就是将最外层的点连接起来构成的凸多边形,凸包包含点集中的所有点。🐶1.1 函数API函数.原创 2022-04-06 06:00:00 · 1593 阅读 · 1 评论 -
【OpenCV-Python】:绘制物体最小外接矩形与圆形
目录😺一、绘制最小外接矩形🐶1.1 函数API🐶1.2 程序设计🐶1.3 结果可视化😺二、绘制最小外接圆形🐶2.1 函数API🐶2.2 程序设计🐶2.3 结果可视化😺一、绘制最小外接矩形🐶1.1 函数API函数:rect = cv2.minAreaRect(contours)参数介绍:参数conto.原创 2022-04-05 06:00:00 · 4728 阅读 · 7 评论 -
【OpenCV-Python】:查找物体轮廓+计算轮廓面积、长度、重心
😺一、查找物体轮廓🐶1.1 函数API函数:img, contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]]).原创 2022-04-04 06:00:00 · 18268 阅读 · 7 评论 -
【OpenCV-Python】:图像的傅里叶变换与逆傅里叶变换
# 😺一、知识储备傅里叶变换就是将信号时域转化为频域的过程,本文用程序实现对二维图像的傅里叶变换与逆变换!首先需要知道一维傅里叶变换!⬇️⬇️⬇️## 🐶1.1 一维傅里叶变换一维傅里叶变换的过程如下方动图所示:原创 2022-04-03 06:00:00 · 6122 阅读 · 3 评论 -
【OpenCV-Python】:图像高通滤波、低通滤波、带通滤波实现
目录😺一、高通滤波🐶1.1 原理🐶1.2 程序设计🐶1.3 结果可视化😺二、低通滤波🐶2.1 原理🐶2.2 程序设计🐶2.3 结果可视化😺三、带通滤波🐶3.1 原理🐶3.2 程序设计🐶3.3 结果可视化😺一、高通滤波🐶1.1 原理顾名思义,高通滤波就是允许高频信息通过,低频信息截断的滤波方式。🐶1.2 .原创 2022-04-02 06:00:00 · 5481 阅读 · 0 评论 -
【OpenCV-Python】:视频直方图的动态显示
一、前言在【OpenCV-Python】:直方图及直方图均衡化(有源码)中我们知道了如何使用plot函数和opencv绘制图像直方图;在【OpenCV-Python】:调用电脑摄像头+读取视频中我们知道了如何读取电脑中的视频并可视化出来今天带来的便是对视频的直方图动.原创 2022-04-01 06:00:00 · 1357 阅读 · 0 评论 -
【OpenCV-Python】:基于均值、中值、方框、双边和高斯滤波的图像去噪
本节将对经过噪声污染的图像进行去噪,去噪方法包含**均值滤波、中值滤波、方框滤波、双边滤波和高斯滤波**。# 😺一、引言## 🐶1.1 图像用例实验所用的图像为[【OpenCV-Python】:对图像添加高斯噪声与椒盐噪声](https://blog.csdn.net/qq_42856191/article/details/123701640?spm=1001.2014.3001.5502)中得到的均值为0,方差为0.01的高斯噪声污染图像和噪声密度为0.05的椒盐噪声污染图像,如图所示:原创 2022-03-31 06:00:00 · 9463 阅读 · 0 评论 -
【OpenCV-Python】:对图像添加高斯噪声与椒盐噪声
😺一、高斯噪声高斯噪声指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。## 🐶1.1 API添加### 🦄1.1.1 函数API我们需要使用`skimage`库中的函数为图像添加高斯噪声。函数式:`skimage.util.random_noise(image, mode=‘gaussian’, seed=None, clip=True, **kwargs)`参数介绍:```python函数式:skimage.util.random_noise(image, mode=原创 2022-03-27 16:45:50 · 17735 阅读 · 3 评论 -
【OpenCV-Python】:形态学操作之形态学梯度+顶帽运算与黑帽运算
什么是形态学梯度形态学梯度能描述图像亮度变化的剧烈程度,我们可以使用形态学梯度突出物体边缘。常见的几种梯度: - 基本梯度:膨胀后的图像减腐蚀后的图像; - 内部梯度:原图减腐蚀后的图像; - 外部梯度:膨胀后的图像减原图; - 方向梯度:使用X方向与Y方向的直线作为结构元素之后得到的图像梯度。我们常说的形态学梯度一般指基本梯度。原创 2022-03-30 06:00:00 · 1076 阅读 · 0 评论 -
【OpenCV-Python】:形态学操作之开运算与闭运算
目录😺一、引言😺二、开运算🐶2.1 什么是开运算🐶2.2 程序编写及结果可视化😺三、闭运算🐶3.1 什么是闭运算🐶3.2 程序编写及结果可视化😺一、引言在【OpenCV-Python】:形态学操作之腐蚀与膨胀中介绍了形态学处理的两个基本操作:腐蚀与膨胀,本节带来基于这两个基本操作的其他形态学处理——开运算和闭运算。😺二、开运算.原创 2022-03-29 06:00:00 · 8159 阅读 · 5 评论 -
【OpenCV-Python】:形态学操作之腐蚀与膨胀
目录😺一、引言😺二、腐蚀(erosion)🐶2.1 什么是腐蚀🐶2.2 程序编写及结果可视化😺三、膨胀(erosion)🐶3.1 什么是膨胀🐶3.2 程序编写及结果可视化😺一、引言形态学(morphology)通常表示生物学的一个分支,该分支主要研究动植物的形态核结构。我们使用同一词语表示数学形态学的内容,.原创 2022-03-28 06:00:00 · 3035 阅读 · 0 评论 -
【OpenCV-Python】:调用电脑摄像头+读取视频
话不多说,直接看代码!import cv2cap = cv2.VideoCapture(0)while(True): ret, frame = cap.read() cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release()cv2.destroyAllWindows()贴一张博主用代码得到的视频截图吧!🎃(浅浅的做了原创 2022-03-22 08:08:28 · 5811 阅读 · 1 评论 -
【深度学习实战—番外篇2】:如何保存CIFAR-10数据集图片?
一、简述CIFAR-10数据集是一个包含了60000张32×32的RGB图像数据集,所有图像共被划分为10个类别,分别为:['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车']['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']【深度学习实战—2】:基于Keras的cifar10图像分类(非常详细、代码开源)这篇博文已原创 2022-03-21 12:23:09 · 4518 阅读 · 0 评论 -
【深度学习实战—番外篇1】:如何保存MNIST数据集图片?
目录一、数据集介绍一、数据集介绍MNIST数据集是计算机视觉领域的一个入门级数据集!【深度学习实战—1】:基于Keras的手写数字识别这篇博文已经介绍了如何使用MNIST数据集并基于keras框架做了一个分类任务!该篇博文讲详细的介绍如何使用MNIST数据集及其他处理过程。???原创 2022-01-06 22:41:35 · 3309 阅读 · 0 评论 -
【千锤百炼Python—14】:修改图片格式
我们在做图像处理的时候,如果需要修改图像的后缀名称,可以通过鼠标????️右击重命名操作!如果图像数量过多呢?例如几百几千甚至几万几十万张图像呢?我们肯定不会手动一个个修改后缀。这时,就要利用编程语言进行批处理操作,用计算机运算他不香吗?✨我们只需要一个python的库os就能完成。import osimg_path = "C:\\Users\\Lenovo\\Desktop\\5\\" # 图片所在路径img_name = os.listdir(img_path)for原创 2022-01-05 12:47:35 · 1542 阅读 · 1 评论 -
【OpenCV-Python】:提高、降低图像亮度(指数变换)
话不多说,直接看代码!import cv2import osimport numpy as npdef read_path(file_pathname): for filename in os.listdir(file_pathname): filename = filename print(filename) img = cv2.imread(file_pathname+'/'+filename) image = np.po原创 2021-12-15 20:26:28 · 17098 阅读 · 8 评论 -
【Python】:SIFT算法的实现
SIFTSIFTSIFT本文侧重于如何使用Python语言实现SIFT算法一、什么是SIFT算法 SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。二、准备工作2.1 实验设备 本文在Windows10系统上,使用pycharm软件完成所有实验。2.2 OpenCV安装 我们可以使用OpenCV库中的cv2.xfeatures2原创 2021-11-13 18:43:50 · 24781 阅读 · 30 评论 -
【Python】:图像批量进行尺寸缩放
话不多说,直接看代码!from PIL import Imageimport osfin = "C:\\Users\\Lenovo\\Desktop\\EXdark\\158" # 输入图像所在路径fout = "C:\\Users\\Lenovo\\Desktop\\EXdark\\158" # 输出图像的路径for file in os.listdir(fin): file_fullname = fin + '/' +file print(file_full原创 2021-11-11 17:07:01 · 5259 阅读 · 1 评论 -
【Python】:图像批量旋转
话不多说,直接看代码!import osfrom PIL import Imagedef read_path(file_pathname): # 函数的输入是图片所在的路径 for filename in os.listdir(file_pathname): print(filename) # 所操作图片的名称可视化 img = Image.open(file原创 2021-11-11 17:04:15 · 7149 阅读 · 1 评论 -
【Python】:修改图片后缀
话不多说,直接看代码!import osdirName = "C:\\Users\\Wxr\\Desktop\\12_LOL\\210normal\\" # 图片所在路径total_img = os.listdir(dirName)for filename in total_img: # 索引所有图像 newname = filename newname = newname.split(".") # 分离后缀原创 2021-11-11 16:26:17 · 4818 阅读 · 0 评论 -
【OpenCV-Python】:图像批量翻转
在做深度学习工作时,有时数据集数量不够,势必要进行数据增强,一些框架如tensorflow、keras、pytorch也提供了相应的API用于数据增强。keras中的tf.keras.preprocessing.image.ImageDataGenerator使用实时数据增强生成批量张量图像数据。这里给出API整体:tf.keras.preprocessing.image.ImageDataGenerator( featurewise_center=False, samplewise_c原创 2021-07-05 10:49:37 · 4976 阅读 · 0 评论 -
【OpenCV-Python】:图像PSNR、SSIM、MSE计算
评价一幅图像质量的好坏有多种方式,目前最常用的是PSNR、SSIM、MSE。接下来我们具体讲解。1. MSE(Mean Squared Error)均方误差MSE是预测值f(x)与目标值y之间差值平方和的均值,公式表示为:MSE=∑i=1n(f(x)−y)2nMSE=\frac{\sum_{i=1}^{n}(f(x)-y)^{2}}{n}MSE=n∑i=1n(f(x)−y)2对于图像来说,两个m×n单色图像I和K,如果一个为另一个的噪声近似,那么它们的均方误差定义为:MSE=1mn∑i=0m−原创 2021-07-03 21:56:29 · 24792 阅读 · 1 评论 -
【OpenCV-Python】:Canny边缘检测的图像化与数值化直观显示
首先给出Canny边缘检测的代码!import cv2img = cv2.imread('C:\\Users\\Wxr\\Desktop\\21.jpg', cv2.IMREAD_GRAYSCALE)c1 = cv2.Canny(img, 32, 128)r1 = cv2.imshow("result", c1)cv2.waitKey()cv2.imwrite('C:\\Users\\Wxr\\Desktop\\r1.jpg', c1)下图左侧是原图,右侧是边缘检测后的图像。如果在做图原创 2021-07-01 22:14:06 · 4564 阅读 · 0 评论 -
【OpenCV-Python】:批量生成掩膜图像
话不多说,直接看代码!import cv2import osimport numpy as npdef read_path(file_pathname): for filename in os.listdir(file_pathname): # 遍历文件夹内的所有图片 print(filename) # 打印图片名称 a = 44原创 2021-06-13 09:46:13 · 5396 阅读 · 2 评论 -
【Python】:批量读取文件夹内图像并显示
话不多说,直接看代码!import osimport matplotlib.pyplot as plttrain_dir = os.path.join("E:\\CelebA\\Img\\64normal")train_image_names = os.listdir(train_dir)print(train_image_names)for i in range(0, len(train_image_names)): im = plt.imread(train_dir +"/" +原创 2021-05-18 08:32:35 · 6121 阅读 · 1 评论 -
【OpenCV-Python】:图像从一个文件夹中读取,写入另一个文件夹
话不多说,直接看代码!import osimport cv2def read_path(file_pathname): for filename in os.listdir(file_pathname): filename = filename img = cv2.imread(file_pathname+'/'+filename) cv2.imwrite("Destination_folder" + "/" + filename, img)原创 2021-05-18 08:18:18 · 5276 阅读 · 0 评论 -
【OpenCV-Python】:色彩空间转换(有源码)
色彩空间类型转换:它是将图像从一个色彩空间转换到另外一个色彩空间,每个色彩空间都有自己擅长的处理问题的领域。通道的拆分与合并在RGB色彩空间中,图像通道的顺序是R→G→B,即第一个通道是R通道,第2个通道是G通道,第3个通道是B通道。注:在OpenCV中,通道顺序是B→G→R。接下来我们考虑如何将3个通道进行拆分并单独显示其中一个通道的图像,这里给出两种拆分方式:1. 通过索引拆分我们使用......原创 2021-02-15 11:46:34 · 7281 阅读 · 0 评论 -
【OpenCV-Python】:直方图及直方图均衡化(有源码)
直方图 直方图是进行图像处理过程中的一种非常重要的工具。它是从图像内部灰度级的角度对图像进行表述。 直方图统计的是图像内各个灰度级出现的次数。直方图的绘制1.使用pyplot绘制直方图 使用函数:matplotlib.pyplot.hist(X, BINS)X 和 BINS 的参数如下: X:数据源,必须是一维的。对于通常的二维图像来说,需要使用ravel()函数将图像处理为一维数据源。 BINS:表示灰度级的分组情况。 函数ravel()的作用是将二维数组降维成一维数组,举例原创 2021-02-07 18:45:45 · 11142 阅读 · 3 评论