raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進(jìn)行切分,然后強(qiáng)制轉(zhuǎn)化成數(shù)值類型,才能用plot函數(shù)

為廣安等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及廣安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都做網(wǎng)站、廣安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
我把你的代碼稍微修改了一下,可能不太漂亮,不過(guò)能運(yùn)行了
x=[1,2,3]
a = raw_input('function')
a = a.split(' ')#依空格對(duì)字符串a(chǎn)進(jìn)行切分,如果是用逗號(hào)分隔,則改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字符強(qiáng)制轉(zhuǎn)化成int類型,如果是小數(shù),將int改為float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)
此函數(shù)將輸入的圖片從一個(gè)顏色域轉(zhuǎn)換到另一個(gè)。
input: 以數(shù)組形式輸入圖片
zoom:浮點(diǎn)數(shù)或數(shù)組。如果是一個(gè)浮點(diǎn)數(shù),對(duì)每一個(gè)軸放縮相同的倍數(shù)。如果是一個(gè)數(shù)組,則對(duì)每一個(gè)軸分配一個(gè)值。
output:輸出,默認(rèn)為None
order:整型(范圍0-5)樣條插值的順序,默認(rèn)為3。詳見(jiàn)后續(xù)
mode:字符串,包括{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’},輸入的數(shù)組如何擴(kuò)展邊界,默認(rèn)為 ‘constant'(具體參考官方文檔 插值的邊界處理 )
cval:浮點(diǎn)數(shù),當(dāng)插值的邊界處理模式為’constant‘時(shí)發(fā)揮作用。默認(rèn)為0.0
prefilter:bool,input輸入的數(shù)組是否經(jīng)過(guò)一個(gè)預(yù)樣條濾波器,默認(rèn)為True
設(shè)原圖 ,
目標(biāo)圖片
設(shè) 之比為 , ,則:
設(shè)原圖坐標(biāo)上的像素點(diǎn) ,
目標(biāo)圖片坐標(biāo)上的像素的為
1.計(jì)算目標(biāo)圖片的坐標(biāo)點(diǎn)對(duì)應(yīng)原圖中哪個(gè)坐標(biāo)點(diǎn),公式為:
2.根據(jù)dst_x,dst_y的值四舍五入為整數(shù),填充到目標(biāo)圖片的相應(yīng)位置。
由上圖可以看到,經(jīng)過(guò)轉(zhuǎn)換后的圖片出現(xiàn)了鋸齒感。
1.計(jì)算目標(biāo)圖片的坐標(biāo)點(diǎn)對(duì)應(yīng)原圖中哪個(gè)坐標(biāo)點(diǎn)(此步與最鄰近插值算法相同),公式為:
2.由于點(diǎn) 是個(gè)浮點(diǎn)數(shù)坐標(biāo),無(wú)法用整型的灰度值或RGB值來(lái)表示,因此雙線性插值算法通過(guò)尋找距離這個(gè)對(duì)應(yīng)坐標(biāo)最近的四個(gè)像素點(diǎn),來(lái)計(jì)算該點(diǎn)的值(灰度值或者RGB值)。
設(shè)分解后的坐標(biāo)為:
首先,在x方向上進(jìn)行線性插值, 代表該點(diǎn)的像素值。
然后,在y方向上進(jìn)行線性插值:
得到的 就是該點(diǎn)經(jīng)過(guò)處理后的像素值,填充到目標(biāo)圖片的相應(yīng)位置。
可見(jiàn),雙線性插值算法的鋸齒感要少于最鄰近插值法。
三次插值法(cubic interpolation method)是一種 多項(xiàng)式插值法 ,逐次以 三次曲線 φ(t)=a 0 +a 1 t+a 2 t 2 +a 3 t 3 的極小點(diǎn)逼近尋求函數(shù)f(t)的極小點(diǎn)的一種方法.(摘自 百度百科 )
可見(jiàn),三次插值法處理后的圖片幾乎沒(méi)有鋸齒感
為避免中文顯示出錯(cuò),需導(dǎo)入matplotlib.pylab庫(kù)
1.2.1 確定數(shù)據(jù)
1.2.2 創(chuàng)建畫布
1.2.3 添加標(biāo)題
1.2.4 添加x,y軸名稱
1.2.5 添加x,y軸范圍
1.2.6 添加x,y軸刻度
1.2.7 繪制曲線、圖例, 并保存圖片
保存圖片時(shí),dpi為清晰度,數(shù)值越高越清晰。請(qǐng)注意,函數(shù)結(jié)尾處,必須加plt.show(),不然圖像不顯示。
繪制流程與繪制不含子圖的圖像一致,只需注意一點(diǎn):創(chuàng)建畫布。
合理調(diào)整figsize、dpi,可避免出現(xiàn)第一幅圖橫軸名稱與第二幅圖標(biāo)題相互遮蓋的現(xiàn)象.
2.2.1 rc參數(shù)類型
2.2.2 方法1:使用rcParams設(shè)置
2.2.3 方法2:plot內(nèi)設(shè)置
2.2.4 方法3:plot內(nèi)簡(jiǎn)化設(shè)置
方法2中,線條形狀,linestyle可簡(jiǎn)寫為ls;線條寬度,linewidth可簡(jiǎn)寫為lw;線條顏色,color可簡(jiǎn)寫為c,等等。
圖片疊加再一起成這種形式(batch,28,28,1)
可以使用numpy庫(kù)的concatenate函數(shù)實(shí)現(xiàn)
import numpy as np
a = np.array([[0,1]])
print(a.shape)
b = np.array([[0,1]])
print(b.shape)
print (np.concatenate((a,b),axis = 0).shape)
輸出如下:
生成一張純色的圖片
先設(shè)置圖片的顏色,接著利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設(shè)置成rgba,類似的還有rgb,L(灰度圖等),尺寸設(shè)定為640,480,這個(gè)可以根據(jù)自己的情況設(shè)定,顏色同樣如此。
批量生成圖片
上面生成了一張圖片,那要生成十張圖片呢,這種步驟一樣,只是顏色改變的,利用循環(huán)就可以解決。首先創(chuàng)建一個(gè)顏色列表,把要生成的圖片顏色放進(jìn)去。接著循環(huán)獲取不同的顏色,保存的時(shí)候利用字符串拼接的方法改變圖片的名字。
本地生成的圖片
封裝成函數(shù)
前面的方法已經(jīng)可以批量生成圖片了,為了通用性強(qiáng)一點(diǎn),我們可以封裝成函數(shù),把哪些可以改變的參數(shù)單獨(dú)抽離出來(lái)。尺寸也同樣,使用的時(shí)候,可以根據(jù)自己的需要定義顏色列表和尺寸。當(dāng)然還有加一些提示用語(yǔ)和報(bào)錯(cuò)兼容性,這里就不講了。
本地生成的圖片
文章標(biāo)題:python重繪圖片函數(shù),python繪制函數(shù)圖像
路徑分享:http://chinadenli.net/article1/dsiodid.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站內(nèi)鏈、營(yíng)銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)