Python: 影象處理的基本運算
阿新 • • 發佈:2019-01-09
Python 作為一種面向物件、直譯式的計算機程式語言,在很多領域得到廣泛應用。
本文主要介紹 Python 在影象處理中的基本運算,藉助 scikit-image 庫,Python 在做影象處理的
時候非常方便,對於習慣用MATLAB的人來說,可以非常快速的習慣Python的語法。 熟悉了這些
基本的運算,就可以做進一步複雜的影象處理了。
import numpy as np
from skimage import data
import matplotlib.pyplot as plt
from skimage import io
import time
from skimage import img_as_float, img_as_ubyte
# 讀取影象
file_name='E:/Visual Effects/PS Algorithm/2.jpg';
img=io.imread(file_name)
file_name2='E:/Visual Effects/PS Algorithm/3.jpg'
img2=io.imread(file_name2)
# 影象的融合,
img3=img2*0.5+img*0.5;
# 浮點值的影象歸一化到 0-1 之間
img3=img3/255.0;
# 影象資料型別的轉換
img3=img_as_float(img3);
img3=img_as_ubyte(img3);
# 分離影象的 R, G, B 三個通道
r_img=img2[:,:,0];
g_img=img2[:,:,1];
b_img=img2[:,:,2];
# 儲存影象
io.imsave('red.jpg', r_img);
io.imsave ('out.jpg', img3);
# 訪問影象中的畫素
# 單通道影象
aa=r_img[0:3, 0:4];
# 多通道影象
bb=img[0:3, 0:4, :];
print aa
print bb[1]
# 影象的顯示
# 顯示彩色影象
plt.figure(1)
plt.imshow(img)
# 顯示灰度影象
plt.figure(2)
plt.imshow(r_img, plt.cm.gray)
plt.figure(3 )
plt.imshow(g_img, plt.cm.gray)
plt.figure(4)
plt.imshow(b_img, plt.cm.gray)
plt.axis('off');
plt.show();
# 獲取影象的維度,行數,列數以及通道數
row, col, channel=img.shape;
print "red channel", r_img.dtype, r_img.shape
print "green channel", g_img.dtype, g_img.shape
print "blue channel", g_img.dtype, b_img.shape
print r_img.shape, row, col, channel
# 求影象的最大值,最小值,均值
print img3.min(), img3.max(), img3.mean()