python數(shù)字圖像處理實現(xiàn)圖像的形變與縮放
skimage的transform模塊
圖像的形變與縮放,使用的是skimage的transform模塊,函數(shù)比較多,功能齊全。
1、改變圖片尺寸resize
函數(shù)格式為:
skimage.transform.resize(image,output_shape)
image: 需要改變尺寸的圖片
output_shape: 新的圖片尺寸
from skimage import transform,data
import matplotlib.pyplot as plt
img = data.camera()
dst=transform.resize(img, (80, 60))
plt.figure('resize')
plt.subplot(121)
plt.title('before resize')
plt.imshow(img,plt.cm.gray)
plt.subplot(122)
plt.title('before resize')
plt.imshow(dst,plt.cm.gray)
plt.show()將camera圖片由原來的512*512大小,變成了80*60大小。從下圖中的坐標尺,我們能夠看出來:

2、按比例縮放rescale
函數(shù)格式為:
skimage.transform.rescale(image,scale[,...])
scale參數(shù)可以是單個float數(shù),表示縮放的倍數(shù),也可以是一個float型的tuple,如[0.2,0.5],表示將行列數(shù)分開進行縮放
from skimage import transform,data img = data.camera() print(img.shape) #圖片原始大小 print(transform.rescale(img, 0.1).shape) #縮小為原來圖片大小的0.1倍 print(transform.rescale(img, [0.5,0.25]).shape) #縮小為原來圖片行數(shù)一半,列數(shù)四分之一 print(transform.rescale(img, 2).shape) #放大為原來圖片大小的2倍
結(jié)果為:
(512, 512)
(51, 51)
(256, 128)
(1024, 1024)
3、旋轉(zhuǎn) rotate
skimage.transform.rotate(image,angle[,...],resize=False)
angle參數(shù)是個float類型數(shù),表示旋轉(zhuǎn)的度數(shù)
resize用于控制在旋轉(zhuǎn)時,是否改變大小 ,默認為False
from skimage import transform,data
import matplotlib.pyplot as plt
img = data.camera()
print(img.shape) #圖片原始大小
img1=transform.rotate(img, 60) #旋轉(zhuǎn)90度,不改變大小
print(img1.shape)
img2=transform.rotate(img, 30,resize=True) #旋轉(zhuǎn)30度,同時改變大小
print(img2.shape)
plt.figure('resize')
plt.subplot(121)
plt.title('rotate 60')
plt.imshow(img1,plt.cm.gray)
plt.subplot(122)
plt.title('rotate 30')
plt.imshow(img2,plt.cm.gray)
plt.show()顯示結(jié)果:

4、圖像金字塔
以多分辨率來解釋圖像的一種有效但概念簡單的結(jié)構(gòu)就是圖像金字塔。圖像金字塔最初用于機器視覺和圖像壓縮,一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低的圖像集合。金字塔的底部是待處理圖像的高分辨率表示,而頂部是低分辨率的近似。當向金字塔的上層移動時,尺寸和分辨率就降低。
在此,我們舉一個高斯金字塔的應(yīng)用實例,函數(shù)原型為:
skimage.transform.pyramid_gaussian(image, downscale=2)
downscale控制著金字塔的縮放比例
import numpy as np
import matplotlib.pyplot as plt
from skimage import data,transform
image = data.astronaut() #載入宇航員圖片
rows, cols, dim = image.shape #獲取圖片的行數(shù),列數(shù)和通道數(shù)
pyramid = tuple(transform.pyramid_gaussian(image, downscale=2)) #產(chǎn)生高斯金字塔圖像
#共生成了log(512)=9幅金字塔圖像,加上原始圖像共10幅,pyramid[0]-pyramid[1]
composite_image = np.ones((rows, cols + cols / 2, 3), dtype=np.double) #生成背景
composite_image[:rows, :cols, :] = pyramid[0] #融合原始圖像
i_row = 0
for p in pyramid[1:]:
n_rows, n_cols = p.shape[:2]
composite_image[i_row:i_row + n_rows, cols:cols + n_cols] = p #循環(huán)融合9幅金字塔圖像
i_row += n_rows
plt.imshow(composite_image)
plt.show()

上圖,就是10張金字塔圖像,下標為0的表示原始圖像,后面每層的圖像行和列變?yōu)樯弦粚拥囊话?,直至變?yōu)?
除了高斯金字塔外,還有其它的金字塔,如:
skimage.transform.pyramid_laplacian(image, downscale=2):

以上就是python數(shù)字圖像處理實現(xiàn)圖像的形變與縮放的詳細內(nèi)容,更多關(guān)于python數(shù)字圖像形變與縮放的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pycharm IDE安裝環(huán)境配置的2025最新完整版教程
PyCharm是目前最流行、使用最廣泛的Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,下面我們來看看Pycharm IDE安裝環(huán)境配置的最新教程吧2025-03-03
Python3+Requests+Excel完整接口自動化測試框架的實現(xiàn)
這篇文章主要介紹了Python3+Requests+Excel完整接口自動化測試框架的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
詳解python如何提取瀏覽器中保存的網(wǎng)站登錄用戶名密碼
很多瀏覽器都貼心地提供了保存用戶密碼功能,用戶一旦開啟,就不需要每次都輸入用戶名、密碼,非常方便,作為python腳本,能否拿到用戶提前保存在瀏覽器中的用戶名密碼,用以自動登錄呢,下面我們就來看看吧2023-08-08
一行Python代碼實現(xiàn)為圖片上版權(quán)
不知道大家會不會遇到這樣的情況,自己辛辛苦苦整理的攻略,分享給自己的一些朋友,結(jié)果分享有人堂而皇之地拿著這份攻略圖片去引流,并聲稱是自己整理的,真是豈有此理!本文就來用Python實現(xiàn)為圖片上版權(quán),需要的可以參考一下2023-01-01

