重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本文實例講述了Python實現PS濾鏡的旋轉模糊功能。分享給大家供大家參考,具體如下:
這里用 Python 實現 PS 濾鏡中的旋轉模糊,具體的算法原理和效果可以參考附錄相關介紹。Python代碼如下:
from skimage import img_as_float import matplotlib.pyplot as plt from skimage import io import numpy as np import numpy.matlib file_name='D:/Visual Effects/PS Algorithm/4.jpg' img=io.imread(file_name) img = img_as_float(img) img_out = img.copy() row, col, channel = img.shape xx = np.arange (col) yy = np.arange (row) x_mask = numpy.matlib.repmat (xx, row, 1) y_mask = numpy.matlib.repmat (yy, col, 1) y_mask = np.transpose(y_mask) center_y = (row -1) / 2.0 center_x = (col -1) / 2.0 R = np.sqrt((x_mask - center_x) **2 + (y_mask - center_y) ** 2) angle = np.arctan2(y_mask - center_y , x_mask - center_x) Num = 20 arr = ( np.arange(Num) + 1 ) / 100.0 for i in range (row): for j in range (col): T_angle = angle[i, j] + arr new_x = R[i, j] * np.cos(T_angle) + center_x new_y = R[i, j] * np.sin(T_angle) + center_y int_x = new_x.astype(int) int_y = new_y.astype(int) int_x[int_x > col-1] = col - 1 int_x[int_x < 0] = 0 int_y[int_y < 0] = 0 int_y[int_y > row -1] = row -1 img_out[i,j,0] = img[int_y, int_x, 0].sum()/Num img_out[i,j,1] = img[int_y, int_x, 1].sum()/Num img_out[i,j,2] = img[int_y, int_x, 2].sum()/Num plt.figure(1) plt.imshow(img) plt.axis('off') plt.figure(2) plt.imshow(img_out) plt.axis('off') plt.show()
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。