IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> cv2 resize 与reshape的区别 -> 正文阅读

[人工智能]cv2 resize 与reshape的区别

简单来理解的话

size表示尺寸

shape代表形状

那么resize表示重绘大小,reshape表示重绘形状

既然重绘大小,那么size就会变化,其像素数量就会发生变化;

重绘形状,则是像素数量不变,只改变其外形。

那么通过,代码简单看一下吧

img=cv2.imread('lena.png')#256,256,3


###Resize
img_Resize=cv2.resize(img,(500,500))
#resize是作用于单个通道的,因此,缩放时,根据原图像的通道进行操作。



###Reshape
img_Reshape=img.reshape(128,512,3)

#img.reshape((128,512,3))
#img.reshape([128,512,3])
#img.reshape(128,384)
#总之是保证数量与原数量相同,怎么排列不关心。

这里需要注意的是,reshape是直接针对img进行操作,而resize,需要通过cv2的库进行操作,如果直接img.resize的话,则会报错,如果添加了refcheck和order参数,那么也得不到正确的图像结果。(从目前我的了解应该是不可以,有知道的大神可以说一下哦)

如果想直接使用img.resize,其实是可以调用PIL库的,PIL中提供的resize方法可以以不同的插值方法进行处理

Image.resize(size, resample=0)

其中:

resample表示改变图像过程用的插值方法。0:双线性插值。1:最邻近插值。2:双三次插值法。3:面积插值法。


仔细研究过resize方法过后,发现resize可以不同的方式进行缩放,同时,支持不同的插值方法,

除了上述通过(width,height)直接指定缩放大小外,还可以通过fx? fy来设置其缩放倍数,此时size可置为0,如下

# x方向放大2倍;y方向放大2倍
cv2.resize(img,None,fx=2,fy=2)

同时,可以通过Interpolation参数来指定其插值方式,该参数为cv2的枚举值,取值范围为0-7(8中),除常用的最邻近插值(INTER_NEAREST)、双线性插值(INTER_LINEAR)外,还有INTER_CUBIC? (三次样条插值)、INTER_AREA??(区域插值)等。

方法效果

?INTER_NEAREST(最近邻插值)

由于是以最近的点作为新的插入点,因此边缘不会出现缓慢的渐慢过度区域,这也导致放大的图像容易出现锯齿的现象

?INTER_CUBIC? (三次样条插值)

可以有效避免出现锯齿的现象

INTER_LINEAR(线性插值)

可以有效避免出现锯齿的现象

?INTER_AREA??(区域插值)

共分三种情况,图像放大时类似于双线性插值,图像缩小(x轴、y轴同时缩小)又分两种情况,此情况下可以避免波纹出现。因此对图像进行缩小时,为了避免出现波纹现象,推荐采用区域插值方法。

而且,官方文档给出了如下定义:

To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to enlarge an image, it will generally look best with #INTER_CUBIC (slow) or #INTER_LINEAR (faster but still looks OK).

? ? 如果要缩小图像,通常推荐使用INTER_AREA插值效果最好,而要放大图像,通常使用INTER_CUBIC(速度较慢,但效果最好),或者使用INTER_LINEAR(速度较快,效果还可以)。


结论:

速度比较:INTER_NEAREST(最近邻插值)>INTER_LINEAR(线性插值)>INTER_CUBIC(三次样条插值)>INTER_AREA ?(区域插值)
OpenCV推荐:如果要缩小图像,为了避免出现波纹现象,通常推荐使用#INTER_AREA插值效果最好,而要放大图像,通常使用INTER_CUBIC(速度较慢,但效果最好),或者使用INTER_LINEAR(速度较快,效果还可以)。至于最近邻插值INTER_NEAREST,一般不推荐使用。


最后,贴出方法的官方定义,以及Interpolation的解释。

?

?

有需要的,源地址自取:

?resize方法定义

Interpolation定义

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:04:57  更:2022-08-19 19:08:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:31:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码