成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python圖像處理函數(shù) python與圖像處理

數(shù)字圖像處理Python實(shí)現(xiàn)圖像灰度變換、直方圖均衡、均值濾波

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)

python中plt.post是什么函數(shù)

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

python有沒有將圖像變成函數(shù)的方法

當(dāng)然有,這就是Python函數(shù)圖像工具(EXE)。 本程序運(yùn)用Python中最令人喜愛的數(shù)據(jù)處理工具numpy和超強(qiáng)的圖像庫matplotlib,實(shí)現(xiàn)13種不同類別函數(shù)的分類圖像整理,展示圖像均可以保存為圖片的形式,具備拖動(dòng)、放大等功能

python:PIL圖像處理

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)

成都seo排名網(wǎng)站優(yōu)化
东台市| 铜川市| 木兰县| 牙克石市| 永胜县| 且末县| 专栏| 祥云县| 确山县| 郧西县| 河北省| 西安市| 庆元县| 宕昌县| 南城县| 米泉市| 杨浦区| 苗栗市| 崇明县| 大竹县| 银川市| 中阳县| 霍林郭勒市| 穆棱市| 江津市| 塔城市| 石林| 井陉县| 本溪市| 建德市| 通化县| 明水县| 扎赉特旗| 卢湾区| 吕梁市| 乐清市| 望奎县| 清水县| 云梦县| 固阳县| 榕江县|