【图像处理】——改变图像的大小(降采样重采样)下采样和上采样
轉載自:https://jingyan.baidu.com/article/a3a3f81139be1f8da2eb8ade.html
上采樣、下采樣和金字塔加速參考:https://blog.csdn.net/Eastmount/article/details/89341077
目錄
1、拉伸圖片——重采樣
2、縮小圖片
1)三次插值法cv2.INTER_CUBIC
2)重采樣插值法cv2.INTER_AREA
3)上面兩種方法的差值
我們常常需要將圖片變成一樣大小的圖片,這樣利于整理和批量操作,這時候就需要使用到調整圖像的大小了
這里需要使用到的是重采樣和降采樣,重采樣用在拉伸圖像上,增加的像素點的像素值是通過插值法來得到的,最常用的方法就是將接近的像素點的值復制過去;降采樣就是縮小圖片時按照一定的距離進行選取像素點
先看看圖片的大小:
import cv2?
image=cv2.imread('C:/……/a.jpg')
a = image.shape
print(a)
其中,a[0]=371表示圖片高度,a[1]=500表示圖片寬度,a[2]=3表示圖片是3通道圖片。
1、拉伸圖片——重采樣
改變圖片大小為500像素高度和371像素的寬度:
p0=cv2.resize(image,(371,500),interpolation=cv2.INTER_CUBIC)
這樣,圖片比例被破壞了,感覺恐龍被上下拉長了。
2、縮小圖片
縮放圖片的大小,需要增加或刪除某些像素。但是,增加的像素的像素值,不能憑空產生,需要根據臨近像素值,近似地給出增加的像素的值。
1)三次插值法cv2.INTER_CUBIC
如果需要按比例縮放圖片,可以這樣:
p1=cv2.resize(image,(int(a[1]/1.5),int(a[0]/1.5)),
? ? ? ? ? ? ? ?interpolation=cv2.INTER_CUBIC)
2)重采樣插值法cv2.INTER_AREA
給增加的像素賦值,需要用插值的方法。而這種方法并不唯一。比如,上面介紹了三次插值法(cv2.INTER_CUBIC)和重采樣插值法(cv2.INTER_AREA)。
p2=cv2.resize(image,(int(a[1]/1.5),int(a[0]/1.5)),
? ? ? ? ? ? ? ?interpolation=cv2.INTER_AREA)
3)上面兩種方法的差值
你可能覺得p1和p2是一樣的,但不是:
cv2.imshow('a',p1-p2)
cv2.waitKey(0)
總結
以上是生活随笔為你收集整理的【图像处理】——改变图像的大小(降采样重采样)下采样和上采样的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java的Jaas授权与鉴权
- 下一篇: 【图像处理】——特征匹配(SIFT特征检