python對圖片處理
⑴ python編程語言,關於圖片處理一個很基礎的問題!!!
什麼版本的python?media mole是哪個?
python2.x中有imageop這個mole,其中imageop.scale(image, psize, width, height, newwidth, newheight)就能滿足你的要求。
python3.x中好像沒有自帶的圖像處理模塊,可以用第三方的mole,如PIL之類的。
⑵ 用python寫的程序,對單張圖片a處理時效果很好,但是改成處理整個文件夾內的圖片時,圖片a效果就不一樣了
from PIL import Image
import os.path
import glob
def convertjpg(jpgfile,outdir,width=1280,height=720):
img=Image.open(jpgfile)
new_img=img.resize((width,height),Image.BILINEAR)
new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
for jpgfile in glob.glob("D:/python/*.jpg"):
convertjpg(jpgfile,"D:/newfile")
convertjpg調用時可以有四個參數,如convertjpg(jpgfile,"D:/newfile",800,600)
Image open了jpg用完後要不要close?
⑶ 請問可以用python實現將大圖片變成小圖片處理嗎,這邊要做一個圖像識別,太大的解析度運行慢
python有一個圖像處理庫——PIL,可以處理圖像文件。PIL提供了功能豐富的方法,比如格式轉換、旋轉、裁剪、改變尺寸、像素處理、圖片合並等等等等,非常強大。
舉個簡單的例子,調整圖片的大小:
12345678910111213141516171819
import Image infile = 'D:\\original_img.jpg'outfile = 'D:\\adjust_img.jpg'im = Image.open(infile)(x,y) = im.size #read image sizex_s = 250 #define standard widthy_s = y * x_s / x #calc height based on standard widthout = im.resize((x_s,y_s),Image.ANTIALIAS) #resize image with high-qualityout.save(outfile) print 'original size: ',x,yprint 'adjust size: ',x_s,y_s '''OUTPUT:original size: 500 358adjust size: 250 179'''
⑷ 有哪些Python圖像處理方面的文章或實例
例如:
Image-Py/imagepy
首先是基礎理論,涉及到數學,概率,信號處理,機器學習等領域內。基礎只容能慢慢積累。至於工具,入門的有PIL,但是PIL對底層像素操作支持的不好,只適合做效果。python科學計算,Numpy是基礎,然後是Scipy,Scipy裡麵包含了很多科學計算方面的函數模塊,其中有一個ndimage,裡面實現了圖像處理的一些經典方法,然後是scikit-image,opencv等大而全的圖像處理庫,ITK等某一領域專用的類庫,可視化可以用matplotlib,三維的可以用vtk或mayavi。最後強烈推薦我個人的開源項目,ImagePy,可以對任何一個基於Numpy的函數,提供界面和交互支持,非常適合學習與研究。
⑸ 如何實現用python處理app上傳的圖片
接收到圖片之後講圖片保存到伺服器上,然後返回給app端圖片的路徑即可。
⑹ 怎樣使用Python圖像處理
Python圖像處理是一種簡單易學,功能強大的解釋型編程語言,它有簡潔明了的語法,高效率的高層數據結構,能夠簡單而有效地實現面向對象編程,下文進行對Python圖像處理進行說明。
當然,首先要感謝「戀花蝶」,是他的文章「用Python圖像處理 」 幫我堅定了用Python和PIL解決問題的想法,對於PIL的一些介紹和基本操作,可以看看這篇文章。我這里主要是介紹點我在使用過程中的經驗。
PIL可以對圖像的顏色進行轉換,並支持諸如24位彩色、8位灰度圖和二值圖等模式,簡單的轉換可以通過Image.convert(mode)函數完 成,其中mode表示輸出的顏色模式。例如''L''表示灰度,''1''表示二值圖模式等。
但是利用convert函數將灰度圖轉換為二值圖時,是採用固定的閾 值127來實現的,即灰度高於127的像素值為1,而灰度低於127的像素值為0。為了能夠通過自定義的閾值實現灰度圖到二值圖的轉換,就要用到 Image.point函數。
深度剖析Python語法功能
深度說明Python應用程序特點
對Python資料庫進行學習研究
Python開發人員對Python經驗之談
對Python動態類型語言解析
Image.point函數有多種形式,這里只討論Image.point(table, mode),利用該函數可以通過查表的方式實現像素顏色的模式轉換。其中table為顏色轉換過程中的映射表,每個顏色通道應當有256個元素,而 mode表示所輸出的顏色模式,同樣的,''L''表示灰度,''1''表示二值圖模式。
可見,轉換過程的關鍵在於設計映射表,如果只是需要一個簡單的箝位值,可以將table中高於或低於箝位值的元素分別設為1與0。當然,由於這里的table並沒有什麼特殊要求,所以可以通過對元素的特殊設定實現(0, 255)范圍內,任意需要的一對一映射關系。
示例代碼如下:
import Image # load a color image im = Image.open(''fun.jpg'') # convert to grey level image Lim = im.convert(''L'') Lim.save(''fun_Level.jpg'') # setup a converting table with constant threshold threshold = 80 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) # convert to binary image by the table bim = Lim.point(table, ''1'') bim.save(''fun_binary.jpg'')
IT部分通常要完成的任務相當繁重但支撐這些工作的資源卻很少,這已經成為公開的秘密。任何承諾提高編碼效率、降低軟體總成本的IT解決方案都應該進行 周到的考慮。Python圖像處理所具有的一個顯著優勢就是可以在企業的軟體創建和維護階段節約大量資金,而這兩個階段的軟體成本佔到了軟體整個生命周期中總成本 的50%到95%。
Python清晰可讀的語法使得軟體代碼具有異乎尋常的易讀性,甚至對那些不是最初接觸和開發原始項目的程序員都 能具有這樣的強烈感覺。雖然某些程序員反對在Python代碼中大量使用空格。
不過,幾乎人人都承認Python圖像處理的可讀性遠勝於C或者Java,後兩 者都採用了專門的字元標記代碼塊結構、循環、函數以及其他編程結構的開始和結束。提倡Python的人還宣稱,採用這些字元可能會產生顯著的編程風格差 異,使得那些負責維護代碼的人遭遇代碼可讀性方面的困難。轉載
⑺ python的opencv怎麼對圖像進行平滑處理
幀差法的代碼:
#define
threshold_diff1
10
//設置簡單幀差法閾值版
#define
threshold_diff2
10
//設置簡單幀差法閾值
int
main(int
argc,unsigned
char*
argv[])
{
Mat
img_src1,img_src2,img_src3;//3幀法需要權3幀圖片
Mat
img_dst,gray1,gray2
⑻ opencv和python下,對圖片的讀取程序報錯如何解決
1、需要用到其他模塊的函數,如:
for i in range(20) #循環次數
image=cv2.imread("D:\picture\%d.jpg"%(i))#路徑自己選擇。
2、可以先升級你的pip,另外看看你的版本是否匹配,包括py版本和32位64位。
3、關於python下使用opencv讀取圖像。首先需要導入opencv包,上面說的那個Ipython並沒有opencv包,所以想使用的請先正確導入opencv包再說,至於怎麼導入,先下載個opencv包,裡面有關於python的opencv包。
以下照片是關於Ipython的運行界面:
⑼ python批量處理圖片
用生成器,每次生成一批處理
⑽ python可以用來處理圖像嗎
可以的,
PythonWare公司提供了免費的Python圖像處理工具包PIL(Python Image Library),該軟體包提供了基本的圖像處理功能,如:
改變圖像大小,旋轉圖像,圖像格式轉換,色場空間轉換,圖像增強,直方圖處理,插值和濾波等等。雖然在這個軟體包上要實現類似MATLAB中的復雜的圖像處理演算法並不太適合,但是Python的快速開發能力以及面向對象等等諸多特點使得它非常適合用來進行原型開發。
在PIL中,任何一副圖像都是用一個Image對象表示,而這個類由和它同名的模塊導出,因此,最簡單的形式是這樣的:
import Image img = Image.open(「dip.jpg」)
注意:第一行的Image是模塊名;第二行的img是一個Image對象;
Image類是在Image模塊中定義的。關於Image模塊和Image類,切記不要混淆了。現在,我們就可以對img進行各種操作了,所有對img的
操作最終都會反映到到dip.img圖像上。
PIL提供了豐富的功能模塊:Image,ImageDraw,ImageEnhance,ImageFile等等。最常用到的模塊是
Image,ImageDraw,ImageEnhance這三個模塊。下面我對此分別做一介紹。關於其它模塊的使用請參見說明文檔.有關PIL軟體包和
相關的說明文檔可在PythonWare的站點www.Pythonware.com上獲得。
Image模塊:
Image模塊是PIL最基本的模塊,其中導出了Image類,一個Image類實例對象就對應了一副圖像。同時,Image模塊還提供了很多有用的函數。
(1)打開一文件:
import Image img = Image.open(「dip.jpg」)
這將返回一個Image類實例對象,後面的所有的操作都是在img上完成的。
(2)調整文件大小:
import Image img = Image.open("img.jpg") new_img = img.resize
((128,128),Image.BILINEAR) new_img.save("new_img.jpg")
原來的圖像大小是256x256,現在,保存的new_img.jpg的大小是128x128。
就是這么簡單,需要說明的是Image.BILINEAR指定採用雙線性法對像素點插值。
在批處理或者簡單的Python圖像處理任務中,採用Python和PIL(Python Image Library)的組合來完成圖像處理任務是一個很不錯的選擇。設想有一個需要對某個文件夾下的所有圖像將對比度提高2倍的任務。用Python來做將是十分簡單的。當然,我也不得不承認Python在圖像處理方面的功能還比較弱,顯然還不適合用來進行濾波、特徵提取等等一些更為復雜的應用。我個人的觀點是,當你要實現這些「高級」的演算法的時候,好吧,把它交給MATLAB去完成。但是,如果你面對的只是一個通常的不要求很復雜演算法的圖像處理任務,那麼,Python圖像處理應該才是你的最佳搭檔。