版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第章 圖形編程,Graphic Programming,2,2,2,有圖有真相,應(yīng)用程序經(jīng)常要用到圖形/圖像/動(dòng)畫統(tǒng)計(jì)軟件證券分析軟件教學(xué)軟件可視化:將抽象事物和過程轉(zhuǎn)變成視覺可見的、形象直觀的圖形圖像表示柱狀圖,直方圖,散點(diǎn)圖,網(wǎng)絡(luò)圖,流程圖,樹,地圖,圖像,動(dòng)畫,...,計(jì)算可視化,科學(xué)可視化:將科學(xué)與工程計(jì)算、實(shí)驗(yàn)中的數(shù)據(jù)用直觀的計(jì)算機(jī)圖形圖像呈現(xiàn)出來(lái),以便人們理解數(shù)據(jù)、增強(qiáng)對(duì)事物現(xiàn)象的認(rèn)識(shí)和對(duì)內(nèi)在規(guī)律的洞察.數(shù)據(jù)可視
2、化:將海量數(shù)據(jù)轉(zhuǎn)化為數(shù)據(jù)圖像,以幫助人們直觀地觀察數(shù)據(jù). 可以進(jìn)而發(fā)展到更高層次的信息可視化和知識(shí)可視化.工程設(shè)計(jì)可視化...,3,4,4,4,圖形是復(fù)雜數(shù)據(jù),包含的信息是復(fù)雜的圓形:圓心(元組)和半徑(數(shù)值);內(nèi)部及邊界的顏色(RGB元組);...圖形操作是復(fù)雜的求面積,周長(zhǎng)等傳統(tǒng)計(jì)算;還有移動(dòng)位置,改顏色等等,本章重點(diǎn),理解計(jì)算機(jī)圖形學(xué)的基本概念,掌握?qǐng)D形的基本編程方法熟悉圖形對(duì)象及其方法掌握交互式圖形編程方法了解圖
3、形繪制和圖像處理的編程方法,Tkinter圖形編程(1),導(dǎo)入模塊import tkinter或from tkinter import *創(chuàng)建根窗口:作圖窗口root = Tk(),6,7,7,7,Tkinter圖形編程(2),創(chuàng)建畫布c = Canvas(,=,...)Canvas是畫布類,利用它可以創(chuàng)建畫布對(duì)象.在中創(chuàng)建畫布=用來(lái)設(shè)置畫布對(duì)象的數(shù)據(jù),如高度,寬度,背景色等例如:在root中創(chuàng)建300x200的白色
4、畫布c = Canvas(root,width=300, height=200,bg='white')c.pack(),例:畫矩形,畫矩形c.create_rectangle(x0,y0,x1,y1,...)或r = c.create_rectangle(...)返回所畫矩形的標(biāo)識(shí)號(hào)常用選項(xiàng)outline = 顏色fill = 顏色state=NORMAL/HIDDENdash
5、=(線段長(zhǎng),間隔),8,例:畫矩形,>>> c.create_rectangle(50,50,200,100)1 >>> r2 = c.create_rectangle(80,70,240,150,tags="rect#2")>>> print r22>>> c.itemconfig(1,fill="black")
6、>>> c.itemconfig(r2,fill="grey",outline="white",width=6) >>> c.delete(r2)>>> c.move(1,50,50)>>> c.create_rectangle(50,50,51,51) # Tkinter畫點(diǎn)>>> p1 = (10
7、,10)>>> p2 = (50,80)>>> c.create_rectangle(p1,p2,tags="#3")>>> xy = (100,110,200,220)>>> c.create_rectangle(xy),9,層次化設(shè)計(jì)案例:graphics,有人在Tkinter之上設(shè)計(jì)了另一個(gè)圖形模塊graphics.py因?yàn)門ki
8、nter較復(fù)雜,初學(xué)者學(xué)起來(lái)有點(diǎn)難graphics將Tkinter的功能封裝成了更易用的類這是非標(biāo)準(zhǔn)模塊,需要自己下載.,10,1 簡(jiǎn)單的圖形編程,圖形用戶界面(GUI,Graphical User Interface)窗口、圖標(biāo)、按鈕以及菜單等。Python的標(biāo)準(zhǔn)GUI- Tkinter本書采用Tkinter中的圖形庫(kù)(graphics.py),,,1 簡(jiǎn)單的圖形編程,導(dǎo)入圖形模塊。將graphics.py文件放入
9、主程序目錄下,或者Python系統(tǒng)目錄下。在Python提示符后輸入導(dǎo)入圖形命令:>>> import graphics創(chuàng)建圖形窗口。由graphics模塊中的GraphWin函數(shù)實(shí)現(xiàn)。Pyhton建立窗口的語(yǔ)句為:>>> win = graphics.GraphWin()窗體的標(biāo)題是“Graphics Window”。,,,1 簡(jiǎn)單的圖形編程,說(shuō)明:GraphWin是一個(gè)窗體對(duì)象,銷
10、毀此對(duì)象:>>> win.close()Python提供了另一個(gè)引用形式來(lái)避免頻繁的引入graphcis庫(kù):from graphics import *用星號(hào)方法導(dǎo)入后,可以更簡(jiǎn)潔的創(chuàng)建窗體對(duì)象:win = GraphWin()后面的圖形程序例子中,均默認(rèn)已經(jīng)用from導(dǎo)入了全部graphics模塊的方法。,1 簡(jiǎn)單的圖形編程,像素圖形窗口中的點(diǎn)的集合。點(diǎn)對(duì)象圖形模塊中最簡(jiǎn)單的對(duì)象。,1 簡(jiǎn)單的圖形
11、編程,實(shí)例:>>> from graphics import *>>> p1 = Point(100,100)>>> p1.getX()100>>> p1.getY()100>>> p2 = Point(150,80)>>> win = GraphWin()>>> p1.draw(win)&g
12、t;>> p2.draw(win),1 簡(jiǎn)單的圖形編程,輸出結(jié)果:,,,1 簡(jiǎn)單的圖形編程,繪制命令直線、圓、矩形、橢圓形、多邊形以及文本實(shí)例:>>> #打開一個(gè)圖形窗口>>> win = GraphWin('MyShapes',300,300)>>> #使用Rectangle對(duì)象繪制一個(gè)藍(lán)色的方形>>> rect = Re
13、ctangle(Point(100,100),Point(220,220))>>> rect.setFill('blue')>>> rect.draw(win),,,1 簡(jiǎn)單的圖形編程,>>> #使用Line對(duì)象繪制一條線>>> line = Line(Point(80,150),Point(270,150))>>> lin
14、e.draw(win)>>> #繪制一個(gè)以點(diǎn) (260,220)為中心,半徑為35的圓形>>> center = Point(260,220)>>> circ = Circle(center,35)>>> circ.draw(win),,,1 簡(jiǎn)單的圖形編程,>>> #使用Oval物體繪制一個(gè)橢圓>>> oval =
15、Oval(Point(20,30), Point(266,85))>>> oval.draw(win)>>> #在橢圓中放入一個(gè)文本標(biāo)簽>>> label = Text(Point(100,50), "Hello World")>>> label.draw(win),,,1 簡(jiǎn)單的圖形編程,輸出結(jié)果:,,,2 圖形對(duì)象,圖形模塊:面向?qū)?/p>
16、象的思想。對(duì)象包括屬性和方法對(duì)象都是某個(gè)類的實(shí)例類定義了實(shí)例包含的屬性和方法,,,對(duì)象,對(duì)象:集數(shù)據(jù)與操作于一身.對(duì)象知道一些信息對(duì)象能對(duì)那些信息進(jìn)行處理計(jì)算:向?qū)ο蟀l(fā)出請(qǐng)求操作的消息.面向?qū)ο?軟件系統(tǒng)由各種對(duì)象組成,對(duì)象之間通過消息進(jìn)行交互.圖形編程工具通常都是面向?qū)ο髮?shí)現(xiàn)的.如Python標(biāo)準(zhǔn)模塊Tkinter,22,,2 圖形對(duì)象,創(chuàng)建點(diǎn)對(duì)象可以使用如下構(gòu)造函數(shù)語(yǔ)句:p = Point(50,60)
17、Point類的構(gòu)造函數(shù)兩個(gè)參數(shù)創(chuàng)建點(diǎn)對(duì)象的x,y坐標(biāo)。大多數(shù)類屬性被設(shè)為默認(rèn)值。,,,2 圖形對(duì)象,對(duì)象的方法一個(gè)對(duì)象所響應(yīng)的消息集合參數(shù)的數(shù)量和類型根據(jù)需要來(lái)確定。無(wú)參數(shù)的方法:p.getX()p.getY()訪問對(duì)象實(shí)例變量的內(nèi)部屬性。,,,2 圖形對(duì)象,有參數(shù)的方法:p.move(10,0)改變對(duì)象實(shí)例變量的屬性值來(lái)改變?cè)搶?duì)象的狀態(tài)。有些方法用到的參數(shù)本身就是復(fù)雜對(duì)象。circ = Circle
18、(Point(100,100), 30)win = GraphWin()circ.draw(win),,,2 圖形對(duì)象,注意有時(shí)兩個(gè)不同的變量可能表示同一個(gè)對(duì)象。更改一個(gè)變量來(lái)改變對(duì)象內(nèi)容的同時(shí)另一個(gè)變量也會(huì)變化。示例假設(shè)寫一個(gè)畫笑臉的程序。希望繪制的兩個(gè)眼睛間隔20單位長(zhǎng)度。眼睛繪制代碼如下:leftEye = Circle(Point(80, 50), 5)leftEye.setFill("yellow&qu
19、ot;)leftEye.setOutline("red")rightEye = leftEyerightEye.move(20,0),,,2 圖形對(duì)象,程序的運(yùn)行結(jié)果:以上代碼是無(wú)效的只創(chuàng)建了一個(gè)Circle對(duì)象。,,,2 圖形對(duì)象,解決方法1為左右眼分別創(chuàng)建兩個(gè)不同的圓。leftEye = Circle(Point(80, 50), 5)leftEye.setFill("y
20、ellow")leftEye.setOutline("red")rightEye = Circle(Point(100, 50), 5)rightEye.setFill("yellow")rightEye.setOutline("red"),,,2 圖形對(duì)象,程序的運(yùn)行結(jié)果:雖然解決了問題,但代碼重復(fù)。如果要修改眼睛的外觀,必須確保兩只眼睛同時(shí)
21、改變。,,,2 圖形對(duì)象,解決方法2利用圖形庫(kù)中clone()方法來(lái)復(fù)制對(duì)象#使用clone()創(chuàng)建兩個(gè)圓leftEye = Circle(Point(80, 50), 5)leftEye.setFill("yellow")leftEye.setOutline("red")rightEye = leftEye.clone() # rightEye is an exact copy o
22、f the leftrightEye.move(20,0),,,31,31,31,程序的用戶界面,程序中與用戶進(jìn)行交互的部分用戶通過UI向程序輸入數(shù)據(jù)或者請(qǐng)求程序執(zhí)行特定任務(wù)程序通過UI向用戶顯示各種信息UI應(yīng)該是用戶友好的兩類UI命令行界面圖形界面(GUI),,,32,32,事件驅(qū)動(dòng),GUI程序的執(zhí)行流程取決于與用戶的實(shí)時(shí)交互例如:Word程序的執(zhí)行事件驅(qū)動(dòng)編程普通程序的執(zhí)行:啟動(dòng)——做事——終止事件驅(qū)動(dòng)程序的執(zhí)
23、行:啟動(dòng)——事件循環(huán)等待事件發(fā)生,然后處理程序的終止也是由特定事件(如關(guān)閉窗口事件)引起的,,33,33,基本概念,事件:例如點(diǎn)擊鼠標(biāo),按下鍵盤等.事件處理程序:對(duì)事件進(jìn)行處理的代碼. 事件驅(qū)動(dòng)編程:一種編程范型程序有一個(gè)事件循環(huán)事件監(jiān)測(cè)OS功能,由工具包提供支持事件處理應(yīng)用程序員只需編寫自己的事件處理程序,,3 交互式圖形編程,圖形接口用于程序的輸入和輸出。事件驅(qū)動(dòng)點(diǎn)擊按鈕,選擇菜單欄里的選項(xiàng),以及在屏幕文本框
24、中輸入文字。圖形模塊隱藏了底層事件的處理機(jī)制,提供了兩個(gè)簡(jiǎn)單的方法獲得用戶在窗口中的輸入。捕捉鼠標(biāo)點(diǎn)擊處理文本輸入,,,3 交互式圖形編程,1. 捕捉鼠標(biāo)點(diǎn)擊GraphWin類中的getMouse()方法。# click.pyfrom graphics import *def main(): win = GraphWin("Click Me!") for i in range(10):
25、 p = win.getMouse() print "You clicked at:", p.getX(), p.getY() main(),,,3 交互式圖形編程,運(yùn)行后的一組輸出結(jié)果:You clicked at: 73 39You clicked at: 157 34You clicked at: 178 92You clicked at: 50 103You clic
26、ked at: 33 139You clicked at: 131 156You clicked at: 151 99You clicked at: 203 54You clicked at: 67 64You clicked at: 12 57,,,3 交互式圖形編程,下面的例子是一個(gè)交互式程序# polygon.pywfrom graphics import *win = GraphWin("Draw a
27、 polygon",300,300)win.setCoords(0.0, 0.0, 300.0, 300.0)message = Text(Point(150, 20), "Click on five points")message.draw(win),,,3 交互式圖形編程,#獲得多邊形的5個(gè)點(diǎn)p1 = win.getMouse()p1.draw(win)p2 = win.getMouse()
28、p2.draw(win)p3 = win.getMouse()p3.draw(win)p4 = win.getMouse()p4.draw(win)p5 = win.getMouse()p5.draw(win),,,3 交互式圖形編程,# 使用Polygon對(duì)象繪制多邊形polygon = Polygon(p1,p2,p3,p4,p5)polygon.setFill("peachpuff")pol
29、ygon.setOutline("black")polygon.draw(win)# 等待響應(yīng)鼠標(biāo)事件,退出程序message.setText("Click anywhere to quit.")win.getMouse(),,,3 交互式圖形編程,程序的運(yùn)行和結(jié)果:,,,3 交互式圖形編程,輸出提示信息使用Text文本對(duì)象Text(Point(150, 20), "Cli
30、ck on five points")message.draw(win)更新提示在程序的倒數(shù)第二行,使用setText方法實(shí)現(xiàn)。message.setText("Click anywhere to quit."),,,3 交互式圖形編程,2. 處理文本輸入輸入對(duì)象Entry獲取窗口中的鍵盤輸入。Entry對(duì)象在窗口中創(chuàng)建一個(gè)文本框使用setText()和getText()方法。Ent
31、ry對(duì)象的內(nèi)容可以被用戶修改。,,,3 交互式圖形編程,溫度轉(zhuǎn)換程序:# tempConvert_gui.pyw# 為溫度轉(zhuǎn)換程序繪制圖形窗口# graphical interface.from graphics import *win = GraphWin("Celsius Converter", 400, 300)win.setCoords(0.0, 0.0, 3.0, 4.0),,,3 交互式圖
32、形編程,# 繪制接口Text(Point(1,3), " Celsius Temperature:").draw(win)Text(Point(1,1), "Fahrenheit Temperature:").draw(win)input = Entry(Point(2,3), 5)input.setText("0.0")input.draw(win)output
33、= Text(Point(2,1),"")output.draw(win)button = Text(Point(1.5,2.0),"Convert It")button.draw(win)Rectangle(Point(1,1.5), Point(2,2.5)).draw(win),,,3 交互式圖形編程,# 等待鼠標(biāo)點(diǎn)擊win.getMouse()# 轉(zhuǎn)換輸入celsius =
34、eval(input.getText())fahrenheit = 9.0/5.0 * celsius + 32# 顯示輸出,改變按鈕output.setText(fahrenheit)button.setText("Quit")# 等待響應(yīng)鼠標(biāo)點(diǎn)擊,退出程序win.getMouse()win.close(),,,3 交互式圖形編程,程序運(yùn)行顯示的窗口界面:,,,3 交互式圖形編程,用戶輸入后的程序窗口
35、界面:使用圖形庫(kù)中的選項(xiàng)更改窗口部件的顏色、尺寸以及線條寬度。,,,4 圖形庫(kù)的應(yīng)用方法,1. GraphWin對(duì)象及方法GraphWin屏幕上的窗體對(duì)象,并在此窗體上繪制圖像。可以定義任意數(shù)量的窗體創(chuàng)建新窗口GraphWin(title, width, height)參數(shù)是可選的默認(rèn)標(biāo)題是“Graphics Window”默認(rèn)大小為200*200。,,,4 圖形庫(kù)的應(yīng)用方法,GraphWin對(duì)象的常用
36、方法:,,,4 圖形庫(kù)的應(yīng)用方法,2. 圖形對(duì)象及方法圖形對(duì)象點(diǎn)、線段、圓、橢圓、矩形、多邊形以及文本。默認(rèn)初始化黑色邊框沒有被填充。,,,4 圖形庫(kù)的應(yīng)用方法,圖形對(duì)象通用方法:,,,4 圖形庫(kù)的應(yīng)用方法,Point對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,Line對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,Circle對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,Rectangle對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,Oval對(duì)象方法:,
37、,,4 圖形庫(kù)的應(yīng)用方法,Polygon 對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,Text 對(duì)象方法:,,,4 圖形庫(kù)的應(yīng)用方法,3. 圖形顏色顏色由字符串指定。color_rgb(red,green,blue)函數(shù)通過設(shè)定顏色數(shù)值來(lái)獲得想要的顏色三個(gè)參數(shù)應(yīng)該為0-255范圍內(nèi)的整數(shù)返回一個(gè)字符串。,,,4 圖形庫(kù)的應(yīng)用方法,對(duì)溫度轉(zhuǎn)換程序進(jìn)行修改如下:# tempConvert_gui.pyw ,用窗口顏色顯示溫度轉(zhuǎn)換的
38、結(jié)果from graphics import *def convert(input): celsius = eval(input.getText()) # 輸入轉(zhuǎn)換 fahrenheit = 9.0/5.0 * celsius + 32 return fahrenheit def colorChange(win,input): cnum = eval(input.getText())
39、weight = cnum / 100.0,,,4 圖形庫(kù)的應(yīng)用方法,newcolor = color_rgb(255*weight,66+150*(1-weight),255*(1-weight)) win.setBackground(newcolor)def main(): win = GraphWin("Celsius Converter", 400, 300) win
40、.setCoords(0.0, 0.0, 3.0, 4.0),,,4 圖形庫(kù)的應(yīng)用方法,# 繪制輸入接口 Text(Point(1,3), " Celsius Temperature:").draw(win) Text(Point(2,2.7)," (Please input 0.0-100.0 )").draw(win) Text(Point(1,1),"Fah
41、renheit Temperature:").draw(win) input = Entry(Point(2,3), 5) input.setText("0.0") input.draw(win) output = Text(Point(2,1),"") output.draw(win) button = Text(Point(1.5,2.
42、0),"Convert It") button.draw(win) rect = Rectangle(Point(1,1.5), Point(2,2.5)) rect.draw(win),,,4 圖形庫(kù)的應(yīng)用方法,# 等待鼠標(biāo)點(diǎn)擊 win.getMouse() result = convert(input) # 轉(zhuǎn)換輸入 output.setText(result
43、) # 顯示輸出 # 改變顏色 colorChange(win,input) # 改變按鈕字體 button.setText("Quit") # 等待點(diǎn)擊事件,退出程序 win.getMouse() win.close()main(),,,4 圖形庫(kù)的應(yīng)用方法,程序的運(yùn)行及結(jié)果溫度轉(zhuǎn)換程序窗口,,,4 圖形庫(kù)的應(yīng)用方法,程序的運(yùn)行及結(jié)果顏色信息的窗
44、口,,,5 示例程序1:最小二乘法擬合曲線,,,,5 示例程序1:最小二乘法擬合曲線,示例對(duì)隨機(jī)生成的15個(gè)點(diǎn)使用最小二乘法擬合曲線。該問題的IPO:輸入:隨機(jī)生成15個(gè)坐標(biāo)點(diǎn)處理:最小二乘法擬合曲線輸出:繪制擬合曲線圖,,,5 示例程序1:最小二乘法擬合曲線,scipy庫(kù)最小二乘函數(shù)leastsq()Numpy庫(kù)矩陣計(jì)算函數(shù)matplotlib庫(kù)繪圖函數(shù)。下載地址http://sourceforge.net/
45、projects/pylab/files/latest/download?source=recommended,,,5 示例程序1:最小二乘法擬合曲線,最小二乘法擬合曲線的代碼:#fittedCurve.pyfrom pylab import * # pylab 是matplotlib庫(kù)中的一個(gè)子模塊from numpy import *from scipy.optimize import leastsq #最小二乘法的函數(shù)
46、#擬合函數(shù)def fun2(p, x): f = poly1d(p) return f(x),,,5 示例程序1:最小二乘法擬合曲線,#偏差函數(shù):離散值和擬合函數(shù)之間的差,p為擬合需要的系數(shù)def err(p,x,y): return y - fun2(p, x)xmin = 0xmax = 10,,,5 示例程序1:最小二乘法擬合曲線,# 隨機(jī)選取15個(gè)點(diǎn)x = linspace(xmin, x
47、max, 15)# 畫圖時(shí)連續(xù)的點(diǎn)x1 = linspace(xmin, xmax, 1000)# x對(duì)應(yīng)的隨機(jī)離散值y1 = x + random.randn(len(x))#隨機(jī)產(chǎn)生一組次數(shù)為10的多項(xiàng)式參數(shù)作為初始參數(shù)值p0 = random.randn(10),,,5 示例程序1:最小二乘法擬合曲線,# 利用leastsq最小二乘函數(shù)進(jìn)行數(shù)據(jù)擬合# err為計(jì)算誤差的函數(shù)# p0為擬合參數(shù)的初始值# args
48、為需要擬合的實(shí)驗(yàn)數(shù)據(jù)# maxfev是最多調(diào)用函數(shù)的次數(shù)result = leastsq(err, p0, args=(x, y1), maxfev=1000)#輸出擬合參數(shù)print '擬合參數(shù):', result[0],,,5 示例程序1:最小二乘法擬合曲線,#繪制離散值點(diǎn)和擬合曲線title('Least-squares fited curve to discrete data')pl
49、ot(x, y1, 'ro', label='Data') #繪制離散點(diǎn)plot(x1, fun2(result[0], x1), label='Fitted curve') #繪制曲線legend() #圖的標(biāo)注show() return 0;,,,5 示例程序1:最小二乘法擬合曲線,程序運(yùn)行的結(jié)果:,,,5 示例程序1:最小二乘法擬合曲線,注意:matplotl
50、ib是python第三方繪圖庫(kù)將python安裝目錄中的six.py文件拷貝到site-packages文件夾中確認(rèn)Python安裝包中包含lib文件dateutil.lib和pyparsing.lib。,,,6 示例程序2:簡(jiǎn)單的圖像處理,圖像處理利用計(jì)算機(jī)對(duì)圖像信息進(jìn)行加工以滿足人的視覺心理或者應(yīng)用需求的行為。PIL(Python Image Library) PythonWare公司的圖像處理工具包。PIL圖像處理功能
51、改變圖像大小、旋轉(zhuǎn)圖像、圖像格式轉(zhuǎn)換、色場(chǎng)空間轉(zhuǎn)換、圖像增強(qiáng)、直方圖處理、插值和濾波等。PIL功能模塊Image,ImageDraw,ImageEnhance,ImageFileI,mageFilter等PIL下載地址http://www.pythonware.com/products/pil/,,,6 示例程序2:簡(jiǎn)單的圖像處理,從PIL中導(dǎo)出Image類的方法是:import Image打開名為img.jp
52、g圖像文件的代碼為:img = Image.open("img.jpg")該語(yǔ)句返回一個(gè)Image類實(shí)例對(duì)象,后面所有操作都是在img上完成?;赑IL庫(kù)完成圖像邊緣提取的IPO表示如下:輸入:圖像文件處理:利用PIL庫(kù)中的方法實(shí)現(xiàn)圖像邊緣提取輸出:處理圖像邊界的新圖像文件,,,6 示例程序2:簡(jiǎn)單的圖像處理,ImageFilter模塊支持圖像的濾鏡功能處理,常見的如模糊、浮雕、輪
53、廓、邊緣增強(qiáng)和平滑、中值濾波和ModeFilter等。ImageFilter模塊內(nèi)置的Filter,如 BLUR、DETAIL等,F(xiàn)ilter()函數(shù),可以指定不同的參數(shù)獲得不同的效果。使用參數(shù)為CONTOUR的濾鏡可以實(shí)現(xiàn)圖像的邊緣提取。,,,6 示例程序2:簡(jiǎn)單的圖像處理,該程序的代碼為:# imageprocessing.pyimport Imageimport ImageFilterimg = Image.o
54、pen("img.jpg")imgfiltered = img.filter(ImageFilter. CONTOUR)imgfiltered.save("imgfilterterd.jpg"),,,6 示例程序2:簡(jiǎn)單的圖像處理,程序運(yùn)行的結(jié)果: 輸入圖像img.jpg 輸出圖像imgfiltered.jpg,,,本章小結(jié),本章主要內(nèi)容簡(jiǎn)單的圖形
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第4章vba編程基礎(chǔ)
- 第6章windows編程資料
- 第7章圖形用戶界面
- 第2章對(duì)稱圖形圓
- 第6章 圖形用戶界面
- 第2章對(duì)稱圖形圓
- sas編程-圖形
- 第4章《圖形認(rèn)識(shí)初步》(好)
- gnu linux編程課件 第10章
- 第9章Matlab編程作業(yè).pdf
- vc++ 第5章 圖形繪制
- 第5章 java圖形用戶界面
- 第7章visualc++編程基礎(chǔ)-welcometonginx!
- 第4章圖形的相似檢測(cè)題
- cad經(jīng)典教程_第11章_圖形輸出
- 第7章數(shù)控銑削(加工中心)編程
- 面向?qū)ο笈c圖形編程
- 第3章 c51語(yǔ)言編程基礎(chǔ)
- matlab 圖形和動(dòng)畫編程
評(píng)論
0/150
提交評(píng)論