import CV2
創(chuàng)新互聯(lián)建站,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站開發(fā)、展示型網(wǎng)站制作、成都做網(wǎng)站等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
import copy
import numpy as np
import random
使用的是pycharm
因?yàn)樽罱戳恕躲y翼殺手2049》,里面Joi實(shí)在是太好看了所以原圖像就用Joi了
要求是灰度圖像,所以第一步先把圖像轉(zhuǎn)化成灰度圖像
# 讀入原始圖像
img = CV2.imread('joi.jpg')
# 灰度化處理
gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)
CV2.imwrite('img.png', gray)
第一個(gè)任務(wù)是利用分段函數(shù)增強(qiáng)灰度對(duì)比,我自己隨便寫了個(gè)函數(shù)大致是這樣的
def chng(a):
if a 255/3:
b = a/2
elif a 255/3*2:
b = (a-255/3)*2 + 255/6
else:
b = (a-255/3*2)/2 + 255/6 +255/3*2
return b
rows = img.shape[0]
cols = img.shape[1]
cover = copy.deepcopy(gray)
for i in range(rows):
for j in range(cols):
cover[i][j] = chng(cover[i][j])
CV2.imwrite('cover.png', cover)
下一步是直方圖均衡化
# histogram equalization
def hist_equal(img, z_max=255):
H, W = img.shape
# S is the total of pixels
S = H * W * 1.
out = img.copy()
sum_h = 0.
for i in range(1, 255):
ind = np.where(img == i)
sum_h += len(img[ind])
z_prime = z_max / S * sum_h
out[ind] = z_prime
out = out.astype(np.uint8)
return out
covereq = hist_equal(cover)
CV2.imwrite('covereq.png', covereq)
在實(shí)現(xiàn)濾波之前先添加高斯噪聲和椒鹽噪聲(代碼來源于網(wǎng)絡(luò))
不知道這個(gè)椒鹽噪聲的名字是誰起的感覺隔壁小孩都饞哭了
用到了random.gauss()
percentage是噪聲占比
def GaussianNoise(src,means,sigma,percetage):
NoiseImg=src
NoiseNum=int(percetage*src.shape[0]*src.shape[1])
for i in range(NoiseNum):
randX=random.randint(0,src.shape[0]-1)
randY=random.randint(0,src.shape[1]-1)
NoiseImg[randX, randY]=NoiseImg[randX,randY]+random.gauss(means,sigma)
if NoiseImg[randX, randY] 0:
NoiseImg[randX, randY]=0
elif NoiseImg[randX, randY]255:
NoiseImg[randX, randY]=255
return NoiseImg
def PepperandSalt(src,percetage):
NoiseImg=src
NoiseNum=int(percetage*src.shape[0]*src.shape[1])
for i in range(NoiseNum):
randX=random.randint(0,src.shape[0]-1)
randY=random.randint(0,src.shape[1]-1)
if random.randint(0,1)=0.5:
NoiseImg[randX,randY]=0
else:
NoiseImg[randX,randY]=255
return NoiseImg
covereqg = GaussianNoise(covereq, 2, 4, 0.8)
CV2.imwrite('covereqg.png', covereqg)
covereqps = PepperandSalt(covereq, 0.05)
CV2.imwrite('covereqps.png', covereqps)
下面開始均值濾波和中值濾波了
就以n x n為例,均值濾波就是用這n x n個(gè)像素點(diǎn)灰度值的平均值代替中心點(diǎn),而中值就是中位數(shù)代替中心點(diǎn),邊界點(diǎn)周圍補(bǔ)0;前兩個(gè)函數(shù)的作用是算出這個(gè)點(diǎn)的灰度值,后兩個(gè)是對(duì)整張圖片進(jìn)行
#均值濾波模板
def mean_filter(x, y, step, img):
sum_s = 0
for k in range(x-int(step/2), x+int(step/2)+1):
for m in range(y-int(step/2), y+int(step/2)+1):
if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]
or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:
sum_s += 0
else:
sum_s += img[k][m] / (step*step)
return sum_s
#中值濾波模板
def median_filter(x, y, step, img):
sum_s=[]
for k in range(x-int(step/2), x+int(step/2)+1):
for m in range(y-int(step/2), y+int(step/2)+1):
if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]
or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:
sum_s.append(0)
else:
sum_s.append(img[k][m])
sum_s.sort()
return sum_s[(int(step*step/2)+1)]
def median_filter_go(img, n):
img1 = copy.deepcopy(img)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
img1[i][j] = median_filter(i, j, n, img)
return img1
def mean_filter_go(img, n):
img1 = copy.deepcopy(img)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
img1[i][j] = mean_filter(i, j, n, img)
return img1
完整main代碼如下:
if __name__ == "__main__":
# 讀入原始圖像
img = CV2.imread('joi.jpg')
# 灰度化處理
gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)
CV2.imwrite('img.png', gray)
rows = img.shape[0]
cols = img.shape[1]
cover = copy.deepcopy(gray)
for i in range(rows):
for j in range(cols):
cover[i][j] = chng(cover[i][j])
CV2.imwrite('cover.png', cover)
covereq = hist_equal(cover)
CV2.imwrite('covereq.png', covereq)
covereqg = GaussianNoise(covereq, 2, 4, 0.8)
CV2.imwrite('covereqg.png', covereqg)
covereqps = PepperandSalt(covereq, 0.05)
CV2.imwrite('covereqps.png', covereqps)
meanimg3 = mean_filter_go(covereqps, 3)
CV2.imwrite('medimg3.png', meanimg3)
meanimg5 = mean_filter_go(covereqps, 5)
CV2.imwrite('meanimg5.png', meanimg5)
meanimg7 = mean_filter_go(covereqps, 7)
CV2.imwrite('meanimg7.png', meanimg7)
medimg3 = median_filter_go(covereqg, 3)
CV2.imwrite('medimg3.png', medimg3)
medimg5 = median_filter_go(covereqg, 5)
CV2.imwrite('medimg5.png', medimg5)
medimg7 = median_filter_go(covereqg, 7)
CV2.imwrite('medimg7.png', medimg7)
medimg4 = median_filter_go(covereqps, 7)
CV2.imwrite('medimg4.png', medimg4)
2018-05-04 11:11:36
122點(diǎn)贊
qiurisiyu2016
碼齡7年
關(guān)注
matplotlib
1、plt.plot(x,y)
plt.plot(x,y,format_string,**kwargs)?
x軸數(shù)據(jù),y軸數(shù)據(jù),format_string控制曲線的格式字串?
format_string 由顏色字符,風(fēng)格字符,和標(biāo)記字符
import matplotlib.pyplot as plt
plt.plot([1,2,3,6],[4,5,8,1],’g-s’)?
plt.show()
結(jié)果
**kwards:?
color 顏色?
linestyle 線條樣式?
marker 標(biāo)記風(fēng)格?
markerfacecolor 標(biāo)記顏色?
markersize 標(biāo)記大小 等等?
plt.plot([5,4,3,2,1])? ?
plt.show()
結(jié)果
plt.plot([20,2,40,6,80])? ?#缺省x為[0,1,2,3,4,...]
plt.show()
結(jié)果
plt.plot()參數(shù)設(shè)置
Property Value Type
alpha 控制透明度,0為完全透明,1為不透明
animated [True False]
antialiased or aa [True False]
clip_box a matplotlib.transform.Bbox instance
clip_on [True False]
clip_path a Path instance and a Transform instance, a Patch
color or c 顏色設(shè)置
contains the hit testing function
dash_capstyle [‘butt’ ‘round’ ‘projecting’]
dash_joinstyle [‘miter’ ‘round’ ‘bevel’]
dashes sequence of on/off ink in points
data 數(shù)據(jù)(np.array xdata, np.array ydata)
figure 畫板對(duì)象a matplotlib.figure.Figure instance
label 圖示
linestyle or ls 線型風(fēng)格[‘-’ ‘–’ ‘-.’ ‘:’ ‘steps’ …]
linewidth or lw 寬度float value in points
lod [True False]
marker 數(shù)據(jù)點(diǎn)的設(shè)置[‘+’ ‘,’ ‘.’ ‘1’ ‘2’ ‘3’ ‘4’]
markeredgecolor or mec any matplotlib color
markeredgewidth or mew float value in points
markerfacecolor or mfc any matplotlib color
markersize or ms float
markevery [ None integer (startind, stride) ]
picker used in interactive line selection
pickradius the line pick selection radius
solid_capstyle [‘butt’ ‘round’ ‘projecting’]
solid_joinstyle [‘miter’ ‘round’ ‘bevel’]
transform a matplotlib.transforms.Transform instance
visible [True False]
xdata np.array
ydata np.array
zorder any number
確定x,y值,將其打印出來
x=np.linspace(-1,1,5)
y=2*x+1
plt.plot(x,y)
plt.show()
2、plt.figure()用來畫圖,自定義畫布大小
fig1 = plt.figure(num='fig111111', figsize=(10, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#0000FF')
plt.plot(x,y1) ? ? ? ? ? #在變量fig1后進(jìn)行plt.plot操作,圖形將顯示在fig1中
fig2 = plt.figure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')
plt.plot(x,y2) ? ? ? ? ? #在變量fig2后進(jìn)行plt.plot操作,圖形將顯示在fig2中
plt.show()
plt.close()
結(jié)果
fig1 = plt.figure(num='fig111111', figsize=(10, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#0000FF')
plt.plot(x,y1)
plt.plot(x,y2)
fig2 = plt.figure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')
plt.show()
plt.close()
結(jié)果:
3、plt.subplot(222)
將figure設(shè)置的畫布大小分成幾個(gè)部分,參數(shù)‘221’表示2(row)x2(colu),即將畫布分成2x2,兩行兩列的4塊區(qū)域,1表示選擇圖形輸出的區(qū)域在第一塊,圖形輸出區(qū)域參數(shù)必須在“行x列”范圍? ? ? ? ? ? ? ? ? ? ? ?,此處必須在1和2之間選擇——如果參數(shù)設(shè)置為subplot(111),則表示畫布整個(gè)輸出,不分割成小塊區(qū)域,圖形直接輸出在整塊畫布上
plt.subplot(222)?
plt.plot(y,xx)? ? #在2x2畫布中第二塊區(qū)域輸出圖形
plt.show()
plt.subplot(223)? #在2x2畫布中第三塊區(qū)域輸出圖形
plt.plot(y,xx)
plt.subplot(224)? # 在在2x2畫布中第四塊區(qū)域輸出圖形
plt.plot(y,xx)
4、plt.xlim設(shè)置x軸或者y軸刻度范圍
如
plt.xlim(0,1000)? #? 設(shè)置x軸刻度范圍,從0~1000 ? ? ? ? #lim為極限,范圍
plt.ylim(0,20)? ?# 設(shè)置y軸刻度的范圍,從0~20
5、plt.xticks():設(shè)置x軸刻度的表現(xiàn)方式
fig2 = plt.figure(num='fig222222', figsize=(6, 3), dpi=75, facecolor='#FFFFFF', edgecolor='#FF0000')
plt.plot(x,y2)
plt.xticks(np.linspace(0,1000,15,endpoint=True))? # 設(shè)置x軸刻度
plt.yticks(np.linspace(0,20,10,endpoint=True))
結(jié)果
6、ax2.set_title('xxx')設(shè)置標(biāo)題,畫圖
#產(chǎn)生[1,2,3,...,9]的序列
x = np.arange(1,10)
y = x
fig = plt.figure()
ax1 = fig.add_subplot(221)
#設(shè)置標(biāo)題
ax1.set_title('Scatter Plot1')
plt.xlabel('M')
plt.ylabel('N')
ax2 = fig.add_subplot(222)
ax2.set_title('Scatter Plot2clf')
#設(shè)置X軸標(biāo)簽
plt.xlabel('X') ? ? ? ? ? #設(shè)置X/Y軸標(biāo)簽是在對(duì)應(yīng)的figure后進(jìn)行操作才對(duì)應(yīng)到該figure
#設(shè)置Y軸標(biāo)簽
plt.ylabel('Y')
#畫散點(diǎn)圖
ax1.scatter(x,y,c = 'r',marker = 'o') ? ? ? ? ?#可以看出畫散點(diǎn)圖是在對(duì)figure進(jìn)行操作
ax2.scatter(x,y,c = 'b',marker = 'x')
#設(shè)置圖標(biāo)
plt.legend('show picture x1 ')
#顯示所畫的圖
plt.show()
結(jié)果
7、plt.hist()繪制直方圖(可以將高斯函數(shù)這些畫出來)
繪圖都可以調(diào)用matplotlib.pyplot庫來進(jìn)行,其中的hist函數(shù)可以直接繪制直方圖
調(diào)用方式:
n, bins, patches = plt.hist(arr, bins=10, normed=0, facecolor='black', edgecolor='black',alpha=1,histtype='bar')
hist的參數(shù)非常多,但常用的就這六個(gè),只有第一個(gè)是必須的,后面四個(gè)可選
arr: 需要計(jì)算直方圖的一維數(shù)組
bins: 直方圖的柱數(shù),可選項(xiàng),默認(rèn)為10
normed: 是否將得到的直方圖向量歸一化。默認(rèn)為0
facecolor: 直方圖顏色
edgecolor: 直方圖邊框顏色
alpha: 透明度
histtype: 直方圖類型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
返回值 :
n: 直方圖向量,是否歸一化由參數(shù)normed設(shè)定
bins: 返回各個(gè)bin的區(qū)間范圍
patches: 返回每個(gè)bin里面包含的數(shù)據(jù),是一個(gè)list
from skimage import data
import matplotlib.pyplot as plt
img=data.camera()
plt.figure("hist")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red')??
plt.show()
例:
mu, sigma = 0, .1
s = np.random.normal(loc=mu, scale=sigma, size=1000)
a,b,c = plt.hist(s, bins=3)
print("a: ",a)
print("b: ",b)
print("c: ",c)
plt.show()
結(jié)果:
a:? [ 85. 720. 195.]? ? ? ? ?#每個(gè)柱子的值
b:? [-0.36109509 -0.1357318? ?0.08963149? 0.31499478]? ?#每個(gè)柱的區(qū)間范圍
c:? a list of 3 Patch objects? ? ? ?#總共多少柱子
8、ax1.scatter(x,y,c = 'r',marker = 'o')?
使用注意:確定了figure就一定要確定象限,然后用scatter,或者不確定象限,直接使用plt.scatter
x = np.arange(1,10)
y = x
fig = plt.figure()
a=plt.subplot()? ? ? ? ? ? #默認(rèn)為一個(gè)象限
# a=fig.add_subplot(222)
a.scatter(x,y,c='r',marker='o')
plt.show()
結(jié)果
x = np.arange(1,10)
y = x
plt.scatter(x,y,c='r',marker='o')
plt.show()
結(jié)果
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,10)
y = x
plt.figure()
plt.scatter(x,y,c='r',marker='o')
plt.show()
結(jié)果
文章知識(shí)點(diǎn)與官方知識(shí)檔案匹配
Python入門技能樹基礎(chǔ)語法函數(shù)
211242 人正在系統(tǒng)學(xué)習(xí)中
打開CSDN APP,看更多技術(shù)內(nèi)容
plt的一些函數(shù)的使用_班花i的博客_plt函數(shù)
plt.函數(shù) Fwuyi的博客 6513 1plt.figure( )函數(shù):創(chuàng)建畫布 2plt.plot(x, y, format_string, label="圖例名"):繪制點(diǎn)和線, 并控制樣式。 其中x是x軸數(shù)據(jù),y是y軸數(shù)據(jù),xy一般是列表和數(shù)組。format_string 是字符串的格式包括線...
繼續(xù)訪問
Python的數(shù)據(jù)科學(xué)函數(shù)包(三)——matplotlib(plt)_hxxjxw的博客...
import matplotlib.pyplot as plt plt.imshow(img) plt.show() plt.imshow()有一個(gè)cmap參數(shù),即指定顏色映射規(guī)則。默認(rèn)的cmap即顏料板是十色環(huán) 哪怕是單通道圖,值在0-1之間,用plt.imshow()仍然可以顯示彩色圖,就是因?yàn)轭伾成涞年P(guān)...
繼續(xù)訪問
對(duì)Python中plt的畫圖函數(shù)詳解
今天小編就為大家分享一篇對(duì)Python中plt的畫圖函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
plt.plot()函數(shù)詳解
plt.plot()函數(shù)詳細(xì)介紹 plt.plot(x, y, format_string, **kwargs) 參數(shù) 說明 x X軸數(shù)據(jù),列表或數(shù)組,可選 y Y軸數(shù)據(jù),列表或數(shù)組 format_string 控制曲線的格式字符串,可選 **kwargs 第二組或更多(x,y,format_string),可畫多條曲線 format_string 由顏色字符、風(fēng)格字符、標(biāo)記字符組成 顏色字符 'b' 藍(lán)色 'm' 洋紅色 magenta 'g' 綠色 'y.
繼續(xù)訪問
python圖像處理基礎(chǔ)知識(shí)(plt庫函數(shù)說明)_小草莓爸爸的博客_p...
1.畫圖(plt庫)1.1 plt.figure(num=’’,figsize=(x, y),dpi= ,facecolor=’’,edgecolor=’’)num:表示整個(gè)圖標(biāo)的標(biāo)題 figsize:表示尺寸 facecolor:表示1.2 plt.plot(x,y,format_string,**kwargs)...
繼續(xù)訪問
plt的一些函數(shù)使用_neo3301的博客_plt函數(shù)
1、plt.plot(x,y) plt.plot(x,y,format_string,**kwargs) x軸數(shù)據(jù),y軸數(shù)據(jù),format_string控制曲線的格式字串 format_string 由顏色字符,風(fēng)格字符,和標(biāo)記字符 import matplotlib.pyplot as plt ...
繼續(xù)訪問
最新發(fā)布 python plt 繪圖詳解(plt.版本)
python plt繪圖詳解
繼續(xù)訪問
python圖像處理基礎(chǔ)知識(shí)(plt庫函數(shù)說明)
import matplotlib.pyplot as plt的一些基礎(chǔ)用法,包括直方圖
繼續(xù)訪問
plt.subplot() 函數(shù)解析_Ensoleile。的博客_plt.subplot
plt.subplot()函數(shù)用于直接制定劃分方式和位置進(jìn)行繪圖。 函數(shù)原型 subplot(nrows, ncols, index, **kwargs),一般我們只用到前三個(gè)參數(shù),將整個(gè)繪圖區(qū)域分成 nrows 行和 ncols 列,而 index 用于對(duì)子圖進(jìn)行編號(hào)。
繼續(xù)訪問
...中plt的畫圖函數(shù)_Ethan的博客的博客_python的plt函數(shù)
1、plt.legend plt.legend(loc=0)#顯示圖例的位置,自適應(yīng)方式 說明: 'best' : 0, (only implemented for axes legends)(自適應(yīng)方式) 'upper right' : 1, 'upper left' : 2, 'lower left' : 3, 'lower right' : 4, ...
繼續(xù)訪問
plt.函數(shù)
1 plt.figure( ) 函數(shù):創(chuàng)建畫布 2 plt.plot(x, y, format_string, label="圖例名"):繪制點(diǎn)和線, 并控制樣式。 其中x是x軸數(shù)據(jù),y是y軸數(shù)據(jù),xy一般是列表和數(shù)組。format_string 是字符串的格式包括線條顏色、點(diǎn)類型、線類型三個(gè)部分。向參數(shù)label傳入圖例名,使用plt.legend( )創(chuàng)建圖例。 2.1 畫一條含x、y的線條 import matplotlib.pyplot as plt x = [1, 2, 3, 4] y
繼續(xù)訪問
Python深度學(xué)習(xí)入門之plt畫圖工具基礎(chǔ)使用(注釋詳細(xì),超級(jí)簡單)
Python自帶的plt是深度學(xué)習(xí)最常用的庫之一,在發(fā)表文章時(shí)必然得有圖作為支撐,plt為深度學(xué)習(xí)必備技能之一。作為深度學(xué)習(xí)入門,只需要掌握一些基礎(chǔ)畫圖操作即可,其他等要用到的時(shí)候看看函數(shù)API就行。 1 導(dǎo)入plt庫(名字長,有點(diǎn)難記) import matplotlib.pyplot as plt 先隨便畫一個(gè)圖,保存一下試試水: plt.figure(figsize=(12,8), dpi=80) plt.plot([1,2,6,4],[4,5,6,9]) plt.savefig('./plt_pn
繼續(xù)訪問
python畫圖plt函數(shù)學(xué)習(xí)_dlut_yan的博客_python plt
figure()函數(shù)可以幫助我們同時(shí)處理生成多個(gè)圖,而subplot()函數(shù)則用來實(shí)現(xiàn),在一個(gè)大圖中,出現(xiàn)多個(gè)小的子圖。 處理哪個(gè)figure,則選擇哪個(gè)figure,再進(jìn)行畫圖。 參考博客 importmatplotlib.pyplotaspltimportnumpyasnp x=np.arange(-1,1,0.1...
繼續(xù)訪問
plt.plot()函數(shù)_安之若醇的博客_plt.plot()函數(shù)
plt.plot()函數(shù)是matplotlib.pyplot用于畫圖的函數(shù)傳一個(gè)值列表:import numpy as npimport matplotlib.pyplot as pltt=[1,2,3,4,5]y=[3,4,5,6,7]plt.plot(t, y)當(dāng)x省略的時(shí)候,默認(rèn)[0,1…,N-1]遞增可以傳元組也可以傳...
繼續(xù)訪問
python畫圖plt函數(shù)學(xué)習(xí)
python中的繪圖工具 :matplotli,專門用于畫圖。 一. 安裝與導(dǎo)入 工具包安裝:conda install matplotli 導(dǎo)入:import matplotlib.pyplot as plt 畫圖主要有:列表繪圖;多圖繪圖;數(shù)組繪圖 二. 列表繪圖 1. 基礎(chǔ)繪圖:plt.plot;plt.show import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 16] plt.plot(x, y) plt.show()
繼續(xù)訪問
python中plt的含義_對(duì)Python中plt的畫圖函數(shù)詳解
1、plt.legendplt.legend(loc=0)#顯示圖例的位置,自適應(yīng)方式說明:'best' : 0, (only implemented for axes legends)(自適應(yīng)方式)'upper right' : 1,'upper left' : 2,'lower left' : 3,'lower right' : 4,'right' : 5,'cent...
繼續(xù)訪問
Python中plt繪圖包的基本使用方法
其中,前兩個(gè)輸入?yún)?shù)表示x軸和y軸的坐標(biāo),plot函數(shù)將提供的坐標(biāo)點(diǎn)連接,即成為要繪制的各式線型。常用的參數(shù)中,figsize需要一個(gè)元組值,表示空白畫布的橫縱坐標(biāo)比;plt.xticks()和plt.yticks()函數(shù)用于設(shè)置坐標(biāo)軸的步長和刻度。plt.xlabel()、plt.ylabel()和plt.title()函數(shù)分別用于設(shè)置x坐標(biāo)軸、y坐標(biāo)軸和圖標(biāo)的標(biāo)題信息。的數(shù)據(jù)處理時(shí),發(fā)現(xiàn)了自己對(duì)plt的了解和使用的缺失,因此進(jìn)行一定的基礎(chǔ)用法的學(xué)習(xí),方便之后自己的使用,而不需要頻繁的查閱資料。...
繼續(xù)訪問
python-plt.xticks與plt.yticks
栗子: plt.figure(figsize=(10, 10)) for i in range(25): plt.subplot(5, 5, i+1) plt.xticks([]) plt.yticks([]) plt.grid(False) plt.imshow(train_images[i], cmap=plt.cm.binary) plt.xlabel(class_names[train_labels[i]]) plt.show() 設(shè)置x或y軸對(duì)應(yīng)顯
繼續(xù)訪問
plt繪圖總結(jié)
matplotlib繪圖
繼續(xù)訪問
Python的數(shù)據(jù)科學(xué)函數(shù)包(三)——matplotlib(plt)
繼續(xù)訪問
熱門推薦 python plt 畫圖
使用csv數(shù)據(jù)文件在百度網(wǎng)盤 import pandas as pd unrate = pd.read_csv('unrate.csv') # pd.to_datetime() 轉(zhuǎn)換成日期格式,即由 1948/1/1 轉(zhuǎn)換為 1948-01-01 unrate['DATE'] = pd.to_datetime(unrate['DATE']) print(unrate.head(12)) ...
繼續(xù)訪問
python數(shù)據(jù)可視化實(shí)現(xiàn)步驟,Python數(shù)據(jù)可視化圖實(shí)現(xiàn)過程詳解
Python數(shù)據(jù)可視化圖實(shí)現(xiàn)過程詳解更多python視頻教程請到菜鳥教程畫分布圖代碼示例:# encoding=utf-8import matplotlib.pyplot as pltfrom pylab import * # 支持中文mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]‘mention...
繼續(xù)訪問
matplotlib-plt.plot用法
文章目錄 英語好的直接參考這個(gè)網(wǎng)站 matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs) 將x,y繪制為線條或標(biāo)記 參數(shù): x, y:數(shù)據(jù)點(diǎn)的水平/垂直坐標(biāo)。x值是可選的,默認(rèn)為range(len(y))。通常,這些參數(shù)是 一維數(shù)組。它們也可以是標(biāo)量,也可以是二維的(在這種情況下,列代表單獨(dú)的數(shù)據(jù)集)。 這些參數(shù)不能作為關(guān)鍵字傳遞。 fmt:格式字符串,格式字符串只是用于快速設(shè)置基本行屬性的縮
繼續(xù)訪問
python Plt學(xué)習(xí)
plt的簡單學(xué)習(xí)
繼續(xù)訪問
plt.show()和plt.imshow()的區(qū)別
問題:plt.imshow()無法顯示圖像 解決方法:添加:plt.show(),即 plt.imshow(image) #image表示待處理的圖像 plt.show() 原理:plt.imshow()函數(shù)負(fù)責(zé)對(duì)圖像進(jìn)行處理,并顯示其格式,而plt.show()則是將plt.imshow()處理后的函數(shù)顯示出來。 ...
繼續(xù)訪問
python題庫刷題網(wǎng)站_python在線刷題網(wǎng)站
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技術(shù)人對(duì)外發(fā)布原創(chuàng)技術(shù)內(nèi)容的最大平臺(tái);社區(qū)覆蓋了云計(jì)算、大數(shù)據(jù)、人工智能、IoT、云原生、數(shù)據(jù)庫、微服務(wù)、安全、開發(fā)與運(yùn)維9大技術(shù)領(lǐng)域。","link1":...
繼續(xù)訪問
python xticks_Python Matplotlib.pyplot.yticks()用法及代碼示例
Matplotlib是Python中的一個(gè)庫,它是數(shù)字的-NumPy庫的數(shù)學(xué)擴(kuò)展。 Pyplot是Matplotlib模塊的基于狀態(tài)的接口,該模塊提供了MATLAB-like接口。Matplotlib.pyplot.yticks()函數(shù)matplotlib庫的pyplot模塊中的annotate()函數(shù)用于獲取和設(shè)置y軸的當(dāng)前刻度位置和標(biāo)簽。用法: matplotlib.pyplot.yticks...
繼續(xù)訪問
python的plt函數(shù)_plt.plot畫圖函數(shù)
[‘font.sans-serif’]=[‘SimHei’]plt.rcParams[‘a(chǎn)xes.unicode_minus’] = False#設(shè)置橫縱坐標(biāo)的名稱以及對(duì)應(yīng)字體格式font1 = {‘weight’ : ‘normal’,‘size’ : 15,...
繼續(xù)訪問
plt函數(shù)
寫評(píng)論
7
794
122
有
當(dāng)然有,這就是Python函數(shù)圖像工具(EXE)。 本程序運(yùn)用Python中最令人喜愛的數(shù)據(jù)處理工具numpy和超強(qiáng)的圖像庫matplotlib,實(shí)現(xiàn)13種不同類別函數(shù)的分類圖像整理,展示圖像均可以保存為圖片的形式,具備拖動(dòng)、放大等功能
PIL (Python Imaging Library)
Python圖像處理庫,該庫支持多種文件格式,提供強(qiáng)大的圖像處理功能。
PIL中最重要的類是Image類,該類在Image模塊中定義。
從文件加載圖像:
如果成功,這個(gè)函數(shù)返回一個(gè)Image對(duì)象?,F(xiàn)在你可以使用該對(duì)象的屬性來探索文件的內(nèi)容。
format 屬性指定了圖像文件的格式,如果圖像不是從文件中加載的則為 None 。
size 屬性是一個(gè)2個(gè)元素的元組,包含圖像寬度和高度(像素)。
mode 屬性定義了像素格式,常用的像素格式為:“L” (luminance) - 灰度圖, “RGB” , “CMYK”。
如果文件打開失敗, 將拋出IOError異常。
一旦你擁有一個(gè)Image類的實(shí)例,你就可以用該類定義的方法操作圖像。比如:顯示
( show() 的標(biāo)準(zhǔn)實(shí)現(xiàn)不是很有效率,因?yàn)樗鼘D像保存到一個(gè)臨時(shí)文件,然后調(diào)用外部工具(比如系統(tǒng)的默認(rèn)圖片查看軟件)顯示圖像。該函數(shù)將是一個(gè)非常方便的調(diào)試和測試工具。)
接下來的部分展示了該庫提供的不同功能。
PIL支持多種圖像格式。從磁盤中讀取文件,只需使用 Image 模塊中的 open 函數(shù)。不需要提供文件的圖像格式。PIL庫將根據(jù)文件內(nèi)容自動(dòng)檢測。
如果要保存到文件,使用 Image 模塊中的 save 函數(shù)。當(dāng)保存文件時(shí),文件名很重要,除非指定格式,否則PIL庫將根據(jù)文件的擴(kuò)展名來決定使用哪種格式保存。
** 轉(zhuǎn)換文件到JPEG **
save 函數(shù)的第二個(gè)參數(shù)可以指定使用的文件格式。如果文件名中使用了一個(gè)非標(biāo)準(zhǔn)的擴(kuò)展名,則必須通過第二個(gè)參數(shù)來指定文件格式。
** 創(chuàng)建JPEG縮略圖 **
需要注意的是,PIL只有在需要的時(shí)候才加載像素?cái)?shù)據(jù)。當(dāng)你打開一個(gè)文件時(shí),PIL只是讀取文件頭獲得文件格式、圖像模式、圖像大小等屬性,而像素?cái)?shù)據(jù)只有在需要的時(shí)候才會(huì)加載。
這意味著打開一個(gè)圖像文件是一個(gè)非??斓牟僮鳎粫?huì)受文件大小和壓縮算法類型的影響。
** 獲得圖像信息 **
Image 類提供了某些方法,可以操作圖像的子區(qū)域。提取圖像的某個(gè)子區(qū)域,使用 crop() 函數(shù)。
** 復(fù)制圖像的子區(qū)域 **
定義區(qū)域使用一個(gè)包含4個(gè)元素的元組,(left, upper, right, lower)。坐標(biāo)原點(diǎn)位于左上角。上面的例子提取的子區(qū)域包含300x300個(gè)像素。
該區(qū)域可以做接下來的處理然后再粘貼回去。
** 處理子區(qū)域然后粘貼回去 **
當(dāng)往回粘貼時(shí),區(qū)域的大小必須和參數(shù)匹配。另外區(qū)域不能超出圖像的邊界。然而原圖像和區(qū)域的顏色模式無需匹配。區(qū)域會(huì)自動(dòng)轉(zhuǎn)換。
** 滾動(dòng)圖像 **
paste() 函數(shù)有個(gè)可選參數(shù),接受一個(gè)掩碼圖像。掩碼中255表示指定位置為不透明,0表示粘貼的圖像完全透明,中間的值表示不同級(jí)別的透明度。
PIL允許分別操作多通道圖像的每個(gè)通道,比如RGB圖像。 split() 函數(shù)創(chuàng)建一個(gè)圖像集合,每個(gè)圖像包含一個(gè)通道。 merge() 函數(shù)接受一個(gè)顏色模式和一個(gè)圖像元組,然后將它們合并為一個(gè)新的圖像。接下來的例子交換了一個(gè)RGB圖像的三個(gè)通道。
** 分離和合并圖像通道 **
對(duì)于單通道圖像, split() 函數(shù)返回圖像本身。如果想處理各個(gè)顏色通道,你可能需要先將圖像轉(zhuǎn)為RGB模式。
resize() 函數(shù)接受一個(gè)元組,指定圖像的新大小。
rotate() 函數(shù)接受一個(gè)角度值,逆時(shí)針旋轉(zhuǎn)。
** 基本幾何變換 **
圖像旋轉(zhuǎn)90度也可以使用 transpose() 函數(shù)。 transpose() 函數(shù)也可以水平或垂直翻轉(zhuǎn)圖像。
** transpose **
transpose() 和 rotate() 函數(shù)在性能和結(jié)果上沒有區(qū)別。
更通用的圖像變換函數(shù)為 transform() 。
PIL可以轉(zhuǎn)換圖像的像素模式。
** 轉(zhuǎn)換顏色模式 **
PIL庫支持從其他模式轉(zhuǎn)為“L”或“RGB”模式,其他模式之間轉(zhuǎn)換,則需要使用一個(gè)中間圖像,通常是“RGB”圖像。
ImageFilter 模塊包含多個(gè)預(yù)定義的圖像增強(qiáng)過濾器用于 filter() 函數(shù)。
** 應(yīng)用過濾器 **
point() 函數(shù)用于操作圖像的像素值。該函數(shù)通常需要傳入一個(gè)函數(shù)對(duì)象,用于操作圖像的每個(gè)像素:
** 應(yīng)用點(diǎn)操作 **
使用以上技術(shù)可以快速地對(duì)圖像像素應(yīng)用任何簡單的表達(dá)式??梢越Y(jié)合 point() 函數(shù)和 paste 函數(shù)修改圖像。
** 處理圖像的各個(gè)通道 **
注意用于創(chuàng)建掩碼圖像的語法:
Python計(jì)算邏輯表達(dá)式采用短路方式,即:如果and運(yùn)算符左側(cè)為false,就不再計(jì)算and右側(cè)的表達(dá)式,而且返回結(jié)果是表達(dá)式的結(jié)果。比如 a and b 如果a為false則返回a,如果a為true則返回b,詳見Python語法。
對(duì)于更多高級(jí)的圖像增強(qiáng)功能,可以使用 ImageEnhance 模塊中的類。
可以調(diào)整圖像對(duì)比度、亮度、色彩平衡、銳度等。
** 增強(qiáng)圖像 **
PIL庫包含對(duì)圖像序列(動(dòng)畫格式)的基本支持。支持的序列格式包括 FLI/FLC 、 GIF 和一些實(shí)驗(yàn)性的格式。 TIFF 文件也可以包含多個(gè)幀。
當(dāng)打開一個(gè)序列文件時(shí),PIL庫自動(dòng)加載第一幀。你可以使用 seek() 函數(shù) tell() 函數(shù)在不同幀之間移動(dòng)。
** 讀取序列 **
如例子中展示的,當(dāng)序列到達(dá)結(jié)尾時(shí),將拋出EOFError異常。
注意當(dāng)前版本的庫中多數(shù)底層驅(qū)動(dòng)只允許seek到下一幀。如果想回到前面的幀,只能重新打開圖像。
以下迭代器類允許在for語句中循環(huán)遍歷序列:
** 一個(gè)序列迭代器類 **
PIL庫包含一些函數(shù)用于將圖像、文本打印到Postscript打印機(jī)。以下是一個(gè)簡單的例子。
** 打印到Postscript **
如前所述,可以使用 open() 函數(shù)打開圖像文件,通常傳入一個(gè)文件名作為參數(shù):
如果打開成功,返回一個(gè)Image對(duì)象,否則拋出IOError異常。
也可以使用一個(gè)file-like object代替文件名(暫可以理解為文件句柄)。該對(duì)象必須實(shí)現(xiàn)read,seek,tell函數(shù),必須以二進(jìn)制模式打開。
** 從文件句柄打開圖像 **
如果從字符串?dāng)?shù)據(jù)中讀取圖像,使用StringIO類:
** 從字符串中讀取 **
如果圖像文件內(nèi)嵌在一個(gè)大文件里,比如 tar 文件中??梢允褂肅ontainerIO或TarIO模塊來訪問。
** 從tar文檔中讀取 **
** 該小節(jié)不太理解,請參考原文 **
有些解碼器允許當(dāng)讀取文件時(shí)操作圖像。通常用于在創(chuàng)建縮略圖時(shí)加速解碼(當(dāng)速度比質(zhì)量重要時(shí))和輸出一個(gè)灰度圖到激光打印機(jī)時(shí)。
draft() 函數(shù)。
** Reading in draft mode **
輸出類似以下內(nèi)容:
注意結(jié)果圖像可能不會(huì)和請求的模式和大小匹配。如果要確保圖像不大于指定的大小,請使用 thumbnail 函數(shù)。
Python2.7 教程 PIL
Python 之 使用 PIL 庫做圖像處理
來自
網(wǎng)站欄目:python圖像處理函數(shù) python與圖像處理
文章來源:http://jinyejixie.com/article20/hpsdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站維護(hù)、建站公司、Google、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)