没有合适的资源?快使用搜索试试~ 我知道了~
30.图像量化及采样处理万字详细总结(推荐).pdf
需积分: 5 0 下载量 109 浏览量
2024-03-31
12:20:58
上传
评论
收藏 4.3MB PDF 举报
温馨提示
试读
17页
30.图像量化及采样处理万字详细总结(推荐)
资源推荐
资源详情
资源评论
[Python图像处理] 三十.图像量化及采样处理万字详细总结(推荐)
Eastmount
3697
收藏
18
分类专栏:
Python图像处理及图像识别
文章标签:
Python
OpenCV
图像量化
图像采样
图像处理
2020-11-10 20:18:47
编辑
版权
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像
锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还
请海涵~
前面一篇文章介绍了MoviePy视频编辑库,实现视频的自定义剪切和合并操作;这篇文章将详细讲解图像量化及采样处理,万字长文吐血
整理。同时,该部分知识均为秀璋查阅资料撰写整理,并且开设成了收费专栏,为小宝赚点奶粉钱。当然如果您是学生或者经济拮据,可
以私聊我给你每篇文章开白名单,或者转发原文给你,更多的是希望您心甘情愿的打赏及进步。一起加油喔~
该系列在github所有源代码:
https://github.com/eastmountyxz/ImageProcessing-Python
前文参考:
[Python图像处理] 一.图像处理基础知识及OpenCV入门函数
[Python图像处理] 二.OpenCV+Numpy库读取与修改像素
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
[Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
[Python图像处理] 五.图像融合、加法运算及图像类型转换
[Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移
[Python图像处理] 七.图像阈值化处理及算法对比
[Python图像处理] 八.图像腐蚀与图像膨胀
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
[Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图
[Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽运算
[Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
[Python图像处理] 十五.图像的灰度线性变换
[Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换
[Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子
[Python图像处理] 十八.图像锐化与边缘检测之Scharr算子、Canny算子和LOG算子
[Python图像处理] 十九.图像分割之基于K-Means聚类的区域分割
[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效
[Python图像处理] 二十一.图像金字塔之图像向下取样和向上取样
[Python图像处理] 二十二.Python图像傅里叶变换原理及实现
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效
[Python图像处理] 二十五.图像特效处理之素描、怀旧、光照、流年以及滤镜特效
[Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例
[Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)
[Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸
[Python图像处理] 二十九.MoviePy视频编辑库实现抖音短视频剪切合并操作
Python图像处理及图像识别
本专栏主要结合Python语言讲述图像处理相关的知识,从二值图像、灰度图像到RGB图像基础知识,再
到常见的图像处理算法,包括:灰度算法、图像锐化、图像分割等知识,最后会结合深度学习和机器
习知识讲解图像分类、图像识别等内容。希望该专栏对大家有所帮助,如果有不足之处,还请海涵。
…
Eastmount
¥9.90
第1页 共17页
文章目录
一.图像量化处理
1.概述
2.操作
3.K-Means聚类量化处理
二.图像采样处理
1.概述
2.操作
3.局部马赛克处理
三.图像金字塔
1.图像向下取样
2.图像向上取样
四.本章小结
图像通常是自然界景物的客观反映,并以照片形式或视频记录的介质连续保存,获取图像的目标是从感知的数据中产生数字图像,因此需
要把连续的图像数据离散化,转换为数字化图像,其工作主要包括两方面——量化和采样。数字化幅度值称为量化,数字化坐标值称为采
样。本文主要讲解图像量化和采样处理的概念,并通过Python和OpenCV实现这些功能。
一.图像量化处理
1.概述
所谓量化(Quantization),就是将图像像素点对应亮度的连续变化区间转换为单个特定值的过程,即将原始灰度图像的空间坐标幅度值
离散化。量化等级越多,图像层次越丰富,灰度分辨率越高,图像的质量也越好;量化等级越少,图像层次欠丰富,灰度分辨率越低,会
出现图像轮廓分层的现象,降低了图像的质量。图1是将图像的连续灰度值转换为0至255的灰度级的过程。
如果量化等级为2,则将使用两种灰度级表示原始图片的像素(0-255),灰度值小于128的取0,大于等于128的取128;如果量化等级为
4,则将使用四种灰度级表示原始图片的像素,新图像将分层为四种颜色,0-64区间取0,64-128区间取64,128-192区间取128,
192-255区间取192,依次类推。
图2是对比不同量化等级的“Lena”图。其中(a)的量化等级为256,(b)的量化等级为64,(c)的量化等级为16,(d)的量化等级为
8,(e)的量化等级为4,(f)的量化等级为2。
第2页 共17页
2.操作
下面讲述Python图像量化处理相关代码操作。其核心流程是建立一张临时图片,接着循环遍历原始图像中所有像素点,判断每个像素点应
该属于的量化等级,最后将临时图像显示。下列代码将灰度图像转换为两种量化等级。
其输出结果如图3所示,它将灰度图像划分为两种量化等级。
# -*- coding: utf-8 -*-
# BY:Eastmount CSDN 2020-11-10
import
cv2
import
numpy
as
np
import
matplotlib
.
pyplot
as
plt
#
读取原始图像
img
=
cv2
.
imread
(
'lena.png'
)
#
获取图像高度和宽度
height
=
img
.
shape
[
0
]
width
=
img
.
shape
[
1
]
#
创建一幅图像
new_img
=
np
.
zeros
(
(
height
,
width
,
3
)
,
np
.
uint8
)
#
图像量化操作 量化等级为
2
for
i
in
range
(
height
)
:
for
j
in
range
(
width
)
:
for
k
in
range
(
3
)
:
#
对应
BGR
三分量
if
img
[
i
,
j
]
[
k
]
<
128
:
gray
=
0
else
:
gray
=
128
new_img
[
i
,
j
]
[
k
]
=
np
.
uint8
(
gray
)
#
显示图像
cv2
.
imshow
(
"src"
,
img
)
cv2
.
imshow
(
"Quantization"
,
new_img
)
#
等待显示
cv2
.
waitKey
(
0
)
cv2
.
destroyAllWindows
(
)
第3页 共17页
下面的代码分别比较了量化等级为2、4、8的量化处理效果。
# -*- coding: utf-8 -*-
# BY:Eastmount CSDN 2020-11-10
import
cv2
import
numpy
as
np
import
matplotlib
.
pyplot
as
plt
#
读取原始图像
img
=
cv2
.
imread
(
'lena.png'
)
#
获取图像高度和宽度
height
=
img
.
shape
[
0
]
width
=
img
.
shape
[
1
]
#
创建一幅图像
new_img1
=
np
.
zeros
(
(
height
,
width
,
3
)
,
np
.
uint8
)
new_img2
=
np
.
zeros
(
(
height
,
width
,
3
)
,
np
.
uint8
)
new_img3
=
np
.
zeros
(
(
height
,
width
,
3
)
,
np
.
uint8
)
#
图像量化等级为
2
的量化处理
for
i
in
range
(
height
)
:
for
j
in
range
(
width
)
:
for
k
in
range
(
3
)
:
#
对应
BGR
三分量
if
img
[
i
,
j
]
[
k
]
<
128
:
gray
=
0
else
:
gray
=
128
new_img1
[
i
,
j
]
[
k
]
=
np
.
uint8
(
gray
)
#
图像量化等级为
4
的量化处理
for
i
in
range
(
height
)
:
for
j
in
range
(
width
)
:
for
k
in
range
(
3
)
:
#
对应
BGR
三分量
if
img
[
i
,
j
]
[
k
]
<
64
:
gray
=
0
elif
img
[
i
,
j
]
[
k
]
<
128
:
gray
=
64
elif
img
[
i
,
j
]
[
k
]
<
192
:
gray
=
128
else
:
gray
=
192
new_img2
[
i
,
j
]
[
k
]
=
np
.
uint8
(
gray
)
#
图像量化等级为
8
的量化处理
for
i
in
range
(
height
)
:
for
j
in
range
(
width
)
:
for
k
in
range
(
3
)
:
#
对应
BGR
三分量
if
img
[
i
,
j
]
[
k
]
<
32
:
第4页 共17页
剩余16页未读,继续阅读
资源评论
程序员蜗牛
- 粉丝: 1089
- 资源: 75
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功