入门|图像增强技术

简介: 入门|图像增强技术

图像增强技术的作用,简单点说,就是通过对图像进行加工处理,使图像能更好的在其他领域起作用,比如人脸识别,图像分类等人工智能领域,又或者是在通信领域,通过加工恢复图像在传输中丢失的某些东西。

那么什么又是图像增强呢?通过对图像进行一些加工,从简单的裁剪、变换灰度等到复杂的各种滤波公式去噪点等等 ,大致满足以下两点的都属于图像增强的一部分。

  1. 改变图像视觉效果,使其能更好的应用在某类场景中。
  2. 突出图片某部分特征,满足某些特殊分析的需要。


在实现具体算法之前,我们总需要先思考大致的思路。学习图像增强技术也是如此,在学习这门新技术前,我们可以根据一些以往的经验先想想大概要做些什么:

  1. 图像的收集
  2. 图像的输入
  3. 图像的处理
  4. 图像的输出

图像的收集

这里主要涉及的是从视频中截取我们需要的图片。需要使用到的软件“ffmpeg”。

安装

通过网页搜索直接进入官网点击“Download”,选择自己电脑系统后,点击下方红色勾

选区域,进入下载界面,只用看自己电脑是64位/32位,点击下载。

下载好后,配置环境变量。

右键‘我的电脑’,--属性—高级系统设置—环境变量—用户变量—编辑‘path’—添加ffmpeg软件的文件夹下的bin文件的路径。

使用

通过‘cmd’命令行执行以下操作:

‘ffmpeg -i F -r K -f image2 image-%05d.jpg’

F:需要处理视频的地址。

K:填一个数字表示每秒截几张图,填类似1/1的形式表示一帧截一张图。

其他更详细用法可以自行百度,温馨提示:在哪个文件夹执行命令操作生成的图片就保存在哪个文件夹。

图像的输入

很多时候我们需要处理的是大量的图片,这就需要批量的处理文件。

#需要用到os和cv2库(安装请安装opencv,导入请导入cv2)

imagelist=os.listdir(path)#读取path目录下所有文件的名字

for i  in imagelist:

        if(i.endswith('.jpg' or '.png')):

            #如果文件以jpg或者png结尾

            image=cv2.imread(path+'/'+i)#读取图片

图像的处理

图像增强技术的处理技术很多,先从一些简单操作开始。如图像的裁剪、旋转、镜像翻转和缩放等基本操作开始,主要使用cv2库。

#裁剪(crop)

Image=cv2.imread(‘某张图片地址’)  #读取图片

sp=image.shape  #读取图像的形状信息并通过数组输出[图像的高,图像的宽,图像通道数]

h=sp[0]

w=sp[1]

#截取图像某个区域,可配合random库随机截取,也可以自己设置截取范围

y1=int((1/3)*h)

y2=int((2/3)*h)

x1=int((1/3)*w)

x2=int((2/3)*w)

img=image[y1:y2,x1:x2]

#将图片左上角视为原点,截取y1到y2、x1到x2的区域

 

#旋转(roating)

h,w=image.shape[:2]

center=(h//2,w//2)#旋转中心

#图片旋转

#degree旋转角度,size旋转后的大小,填1为等比例旋转。

M = cv2.getRotationMatrix2D(center,  degree, size)

#执行旋转操作,roated为旋转后的图片

roated = cv2.warpAffine(image, M, (w, h))

 

#镜像翻转(flip)

image=cv2.imread(path)

image=cv2.flip(image,1)#图片翻转

 

#缩放

image=cv2.imread(path)

image=cv2.resize(image,(192,192))#括号内填缩放后的大小

图像的输出

除了直接保存为图片形式外

cv2.imwrite('保存地址',image)

我们在做使用这些处理后的图片时,更多的要用到名为‘npz‘的文件格式。

data=[]#该数组用于存储图片

label=[]#用于储存图片类型,看一个实例

pathone='D:\\imgCut\\Archive\\resize\\nosmoke'#无烟集图片地址

pathtwo="D:\\imgCut\\Archive\\resize\\smoke"#有烟集图片地址

#0代表无烟图片,1代表有烟图片

def saveZ(pathone,pathtwo):

     data=[]

     label=[]

     imagelist_one=os.listdir(pathone)#读取目录下所有文件的名字

     imagelist_two=os.listdir(pathtwo)

     

     for i in imagelist_one:

         

         if(i.endswith('.jpg' or '.png')):

                #如果文件以jpg结尾

            image=cv2.imread(pathone+'\\'+i)

            data.append(image)#将图片加入数组,这里存入的是图片本身而不是一个引用。

            label.append(0)

            

     for i in imagelist_two:

         

         if(i.endswith('.jpg' or '.png')):

                #如果文件以jpg结尾

            image=cv2.imread(pathtwo+'\\'+i)

            data.append(image)

            label.append(1)

np.savez('arc.npz', data=data, label=label)

#文件以npz形式储存,里面有两个数组data,label

之后我们就可以在其他地方直接调用这个文件里的数组

arc=np.load('arc.npz')#导入这个文件

data=arc['data']#读取里面的data数组和label数组

label=arc['label']

 

目录
相关文章
|
Python
Python无限弹窗表白完整代码
Python无限弹窗表白完整代码
340 0
|
数据采集 机器学习/深度学习 数据挖掘
【数学建模】 灰色预测模型
【数学建模】 灰色预测模型
1112 0
|
存储 安全 Java
【NiFi】(一)NiFi 简介及核心概念
【NiFi】(一)NiFi 简介及核心概念
3179 0
【NiFi】(一)NiFi 简介及核心概念
|
AI芯片
AIGC视频生成/编辑技术调研报告
随着图像生成领域的研究飞速发展,基于diffusion的生成式模型取得效果上的大突破。在图像生成/编辑产品大爆发的今天,视频生成/编辑技术也引起了学术界和产业界的高度关注。该分享主要介绍视频生成/编辑的研究现状,包括不同技术路线的优劣势,以及该领域当下面临的核心问题与挑战。
2093 3
AIGC视频生成/编辑技术调研报告
|
5月前
|
机器学习/深度学习 算法
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
本文介绍了一种改进的监督微调方法——Proximal Supervised Fine-Tuning (PSFT),旨在解决传统SFT易过拟合、泛化能力差及导致“熵坍塌”的问题。受PPO强化学习算法启发,PSFT通过引入参数更新的稳定性机制,防止模型在训练中变得过于确定,从而提升探索能力与后续强化学习阶段的表现。实验表明,PSFT在数学推理、模型对齐及泛化能力方面均优于传统SFT。
593 3
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
|
4月前
|
XML 安全 C++
3DM游戏运行库合集离线安装包下载,可以不联网解决报错,文件缺失"缺少 msvcr120.dll" "DirectX 组件缺失"等问题
3DM游戏运行库合集离线安装包,集成VC++、.NET、DirectX等近50款必备组件,一键修复“缺少dll”、启动报错等问题。支持Win7/10/11,无需联网,智能适配系统,适用于新装机、精简系统及古董游戏兼容,高效稳定,是游戏玩家必备的运行环境解决方案。
1450 2
|
11月前
|
存储 SQL 监控
【亲测有用】数据中台系统管理能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
算法
【图像】图像增强-降噪锐化
【图像】图像增强-降噪锐化
186 1
|
机器学习/深度学习 固态存储 计算机视觉
【YOLOv8改进】 RFB (Receptive Field Block):多分支卷积块
**RFB Net是针对目标检测的轻量级解决方案,它通过设计灵感来自人眼感受野的模块提升特征表示。RFB块包含多分支卷积,模拟不同尺度和偏心率,增强轻量模型如SSD的性能。在保持实时速度的同时,RFB Net在准确性上媲美深度检测器。代码可在GitHub找到。**
|
物联网 开发者 异构计算
facechain人物写真生成工业级开源
facechain人物写真应用自8月11日开源了第一版证件照生成后。目前在github(GitHub - modelscope/facechain: FaceChain is a deep-learning toolchain for generating your Digital-Twin.)上已有5.7K的star,论文链接:FaceChain: A Playground for Identity-Preserving Portrait Generation:https://arxiv.org/abs/2308.14256。
1251 5