導航:首頁 > 源碼編譯 > python源碼圖像

python源碼圖像

發布時間:2023-01-01 22:29:23

1. 怎樣使用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的人還宣稱,採用這些字元可能會產生顯著的編程風格差 異,使得那些負責維護代碼的人遭遇代碼可讀性方面的困難。轉載

2. 怎麼用python顯示一張圖片

用python顯示一張圖片方法如下:

import matplotlib.pyplot as plt # plt 用於顯示圖片

import matplotlib.image as mpimg # mpimg 用於讀取圖片

import numpy as nplena = mpimg.imread('lena.png') # 讀取和代碼處於同一目錄下的 lena.png# 此時 lena 就已經是一個 np.array 了,可以對它進行任意處理

lena.shape #(512, 512, 3)plt.imshow(lena) # 顯示圖片plt.axis('off') # 不顯示坐標軸

plt.show()

3. python代碼解釋

Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注於解決問題而不是去搞明白語言本身。易學
Python極其容易上手,因為Python有極其簡單的語法。免費、開源
Python是FLOSS(自由/開放源碼軟體)之一。使用者可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。高層語言
用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。可移植性
由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。這些平台包括linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基於linux開發的android平台。解釋性
一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。運行程序的時候,連接/轉載器軟體把你的程序從硬碟復制到內存中並且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行程序。在計算機內部,Python解釋器把源代碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。面向對象
Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。可擴展性
如果需要一段關鍵代碼運行得更快或者希望某些演算法不公開,可以部分程序用C或C++編寫,然後在Python程序中使用它們。可嵌入性
可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。豐富的庫
Python標准庫確實很龐大。它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。這被稱作Python的「功能齊全」理念。除了標准庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。規范的代碼
Python採用強制縮進的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進制代碼。

4. Python中的原始圖像處理問題,怎麼解決

使用 PIL 可以很方便地創建圖像的縮略圖。thumbnail() 方法接受一個元組參數(該參數指定生成縮略圖的大小),然後將圖像轉換成符合元組參數指定大小的縮略圖。
例如,創建最長邊為 128 像素的縮略圖,可以使用下列命令
pil_im.thumbnail((128,128))

5. (源碼分享)利用Python識別提取圖像文字(中文英文都可以)

你想了解怎麼利用程序自動識別網站驗證碼嗎?識別提取圖像文字(中文英文都可以)

分享一點簡單有用的小項目:python

源碼分享如下:

看視頻教程鏈接:(點擊識別圖像文字視頻教程鏈接)

一、首先需要安裝 Tesseract模塊及 語言包

Tesseract OCR光學字元識別

Windows系統:

安裝網站 (放在不需要許可權的純英文路徑下):
: https://digi.bib.uni-mannheim.de/tesseract/

可以下載一些語言包:

https://github.com/tesseract-ocr/

安裝完成後,如果想要在命令行中使用Tesseract,那麼應該設置環境變數。

還有一個環境變數需要設置的是,要把訓練的數據文件路徑也放到環境變數中。
在環境變數中,添加一個TESSDATA_PREFIX=C:path_to_tesseractdata eseractdata。

在Python代碼中操作tesseract。需要安裝一個庫,叫做pytesseract。通過pip的方式即可安裝:

pip install pytesseract

並且,需要讀取圖片,需要藉助一個第三方庫叫做PIL。通過pip list看下是否安裝。如果沒有安裝,通過pip的方式安裝:

pip install PIL

使用pytesseract將圖片上的文字轉換為文本文字的示例代碼如下:

6. python用cv2怎麼輸出圖像的基本信息

源碼:
#!/usr/bin/env python
#coding=utf-8
__author__ = 'zhangdebin'

import cv2

if __name__ == '__main__':
#image read
image = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg")
image0 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",0)
image1 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",1)

print image
cv2.namedWindow("the window")
cv2.imshow("the window", image)
cv2.namedWindow("the window0")
cv2.imshow("the window0", image0)
cv2.namedWindow("the window1")
cv2.imshow("the window1", image1)

cv2.waitKey(0)

其中,cv2是我在mac系統中安裝的python-opencv包,具體安裝方法在另一篇博文有介紹,
cv2.imread和matlab中的imread函數很像,其中源碼有一個參數imread(…)
imread(filename[, flags]) -> retval,falgs經測試,當預設時為原圖像,當falgs=0時,因為只讀取第一個位元組,彩色圖像讀取為灰度圖像,當falgs逐漸增加,向7(0~7,8位)靠攏時,位元組數增加,圖像色彩越來越靠近原圖像,當超過8位,比如8,變為(8-8=0),又是只取一個位元組,視覺效果為灰度圖,同理,15位為原圖,有興趣的朋友可以自己測試下,具體效果見下圖:

同時,cv2中自帶了falgs =cv2.CV_LOAD_IMAGE_GRAYSCALE或
cv2.CV_LOAD_IMAGE_COLOR,其實這兩個參數和上面是一樣的,0為grayimage,但是color=1,而且顯示時候也不是彩色的,這和matlab的imread有很大區別
grayimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg',cv2.CV_LOAD_IMAGE_GRAYSCALE);
colorimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg', cv2.CV_LOAD_IMAGE_COLOR)
print 'cv2.grayscale:'
print cv2.CV_LOAD_IMAGE_GRAYSCALE
print 'colr:'
print cv2.CV_LOAD_IMAGE_COLOR

cv2.grayscale:
0
colr:
1

7. 常用的十大python圖像處理工具

原文標題:10 Python image manipulation tools.
作者 | Parul Pandey
翻譯 | 安其羅喬爾、JimmyHua
今天,在我們的世界裡充滿了數據,圖像成為構成這些數據的重要組成部分。但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。
圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。Python成為這種圖像處理任務是一個恰當選擇,這是因為它作為一種科學編程語言正在日益普及,並且在其生態系統中免費提供許多最先進的圖像處理工具供大家使用。
讓我們看一下可以用於圖像處理任務中的常用 Python 庫有哪些吧。

1.scikit-image
scikit-image是一個開源的Python包,適用於numpy數組。它實現了用於研究,教育和工業應用的演算法和實用工具。即使是那些剛接觸Python生態系統的人,它也是一個相當簡單直接的庫。此代碼是由活躍的志願者社區編寫的,具有高質量和同行評審的性質。
資源
文檔里記錄了豐富的例子和實際用例,閱讀下面的文檔:
http://scikit-image.org/docs/stable/user_guide.html
用法
該包作為skimage導入,大多數功能都在子模塊中找的到。下面列舉一些skimage的例子:
圖像過濾

使用match_template函數進行模板匹配

你可以通過此處查看圖庫找到更多示例。
2. Numpy
Numpy是Python編程的核心庫之一,並為數組提供支持。圖像本質上是包含數據點像素的標准Numpy數組。因此,我們可以通過使用基本的NumPy操作,例如切片、掩膜和花式索引,來修改圖像的像素值。可以使用skimage載入圖像並使用matplotlib顯示圖像。
資源
Numpy的官方文檔頁面提供了完整的資源和文檔列表:
http://www.numpy.org/
用法
使用Numpy來掩膜圖像.

3.Scipy
scipy是Python的另一個類似Numpy的核心科學模塊,可用於基本的圖像操作和處理任務。特別是子模塊scipy.ndimage,提供了在n維NumPy數組上操作的函數。該包目前包括線性和非線性濾波,二值形態學,B樣條插值和對象測量等功能函數。
資源
有關scipy.ndimage包提供的完整功能列表,請參閱下面的鏈接:
https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html#correlation-and-convolution
用法
使用SciPy通過高斯濾波器進行模糊:

4. PIL/ Pillow
PIL( Python圖像庫 )是Python編程語言的一個免費庫,它支持打開、操作和保存許多不同的文件格式的圖像。然而, 隨著2009年的最後一次發布,它的開發停滯不前。但幸運的是還有有Pillow,一個PIL積極開發的且更容易安裝的分支,它能運行在所有主要的操作系統,並支持Python3。這個庫包含了基本的圖像處理功能,包括點運算、使用一組內置卷積核的濾波和色彩空間的轉換。
資源
文檔中有安裝說明,以及涵蓋庫的每個模塊的示例:
https://pillow.readthedocs.io/en/3.1.x/index.html
用法
在 Pillow 中使用 ImageFilter 增強圖像:

5. OpenCV-Python
OpenCV( 開源計算機視覺庫 )是計算機視覺應用中應用最廣泛的庫之一 。OpenCV-Python 是OpenCV的python版API。OpenCV-Python的優點不只有高效,這源於它的內部組成是用C/C++編寫的,而且它還容易編寫和部署(因為前端是用Python包裝的)。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。
資源
OpenCV-Python-Guide指南可以讓你使用OpenCV-Python更容易:
https://github.com/abidrahmank/OpenCV2-Python-Tutorials
用法
下面是一個例子,展示了OpenCV-Python使用金字塔方法創建一個名為「Orapple」的新水果圖像融合的功能。

6. SimpleCV
SimpleCV 也是一個用於構建計算機視覺應用程序的開源框架。有了它,你就可以訪問幾個高性能的計算機視覺庫,如OpenCV,而且不需要先學習了解位深度、文件格式、顏色空間等。
它的學習曲線大大小於OpenCV,正如它們的口號所說「計算機視覺變得簡單」。一些支持SimpleCV的觀點有:
即使是初學者也可以編寫簡單的機器視覺測試攝像機、視頻文件、圖像和視頻流都是可互操作的資源
官方文檔非常容易理解,而且有大量的例子和使用案例去學習:
https://simplecv.readthedocs.io/en/latest/
用法

7. Mahotas
Mahotas 是另一個計算機視覺和圖像處理的Python庫。它包括了傳統的圖像處理功能例如濾波和形態學操作以及更現代的計算機視覺功能用於特徵計算,包括興趣點檢測和局部描述符。該介面是Python語言,適合於快速開發,但是演算法是用C語言實現的,並根據速度進行了調優。Mahotas庫速度快,代碼簡潔,甚至具有最小的依賴性。通過原文閱讀它們的官方論文以獲得更多的了解。
資源
文檔包括安裝指導,例子,以及一些教程,可以更好的幫助你開始使用mahotas。
https://mahotas.readthedocs.io/en/latest/install.html
用法
Mahotas庫依賴於使用簡單的代碼來完成任務。關於『Finding Wally』的問題,Mahotas做的很好並且代碼量很少。下面是源碼:
https://mahotas.readthedocs.io/en/latest/wally.html

8. SimpleITK
ITK 或者 Insight Segmentation and Registration Toolkit是一個開源的跨平台系統,為開發人員提供了一套廣泛的圖像分析軟體工具 。其中, SimpleITK是建立在ITK之上的簡化層,旨在促進其在快速原型設計、教育、解釋語言中的應用。SimpleITK 是一個圖像分析工具包,包含大量支持一般過濾操作、圖像分割和匹配的組件。SimpleITK本身是用C++寫的,但是對於包括Python以內的大部分編程語言都是可用的。
資源
大量的Jupyter Notebooks 表明了SimpleITK在教育和研究領域已經被使用。Notebook展示了用Python和R編程語言使用SimpleITK來進行互動式圖像分析。
http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/
用法
下面的動畫是用SimpleITK和Python創建的剛性CT/MR匹配過程的可視化 。點擊此處可查看源碼!

9. pgmagick
pgmagick是GraphicsMagick庫的一個基於python的包裝。 GraphicsMagick圖像處理系統有時被稱為圖像處理的瑞士軍刀。它提供了一個具有強大且高效的工具和庫集合,支持以88種主要格式(包括重要格式,如DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF)讀取、寫入和操作圖像。
資源
有一個專門用於PgMagick的Github庫 ,其中包含安裝和需求說明。還有關於這個的一個詳細的用戶指導:
https://github.com/hhatto/pgmagick
用法
使用pgmagick可以進行的圖像處理活動很少,比如:
圖像縮放

邊緣提取

10. Pycairo
Pycairo是圖像處理庫cairo的一組Python捆綁。Cairo是一個用於繪制矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或轉換時不會失去清晰度 。Pycairo是cairo的一組綁定,可用於從Python調用cairo命令。
資源
Pycairo的GitHub庫是一個很好的資源,有關於安裝和使用的詳細說明。還有一個入門指南,其中有一個關於Pycairo的簡短教程。
庫:https://github.com/pygobject/pycairo指南:https://pycairo.readthedocs.io/en/latest/tutorial.html用法
使用Pycairo繪制線條、基本形狀和徑向梯度:

總結
有一些有用且免費的Python圖像處理庫可以使用,有的是眾所周知的,有的可能對你來說是新的,試著多去了解它們。

8. python 如何將一系列圖像扭曲到同一平面上 求源代碼

python 可以採用以下語句將一系列數字十個一行輸出:

list=[1,1,3,4,5,62,5,3,52,5,3,6,6,8,4,6,4,9,5,6]

count=0

foriinlist:

print(i,end='')

count+=1

if(count%10==0):

print(end=' ')#換行輸出

閱讀全文

與python源碼圖像相關的資料

熱點內容
主圖指標源碼回踩 瀏覽:158
怎麼驗證伺服器埠 瀏覽:609
如何添加密碼卡 瀏覽:670
2021好聲音在哪個app觀看 瀏覽:125
壓縮層計算深度 瀏覽:390
愛奇藝怎麼不能源碼輸出 瀏覽:833
小孩視力訓練app哪個好 瀏覽:830
表格上加密碼 瀏覽:201
伺服器如何調時間 瀏覽:416
安卓怎麼跟蹤對方蘋果手機位置 瀏覽:831
pptp伺服器地址怎麼設置 瀏覽:940
藍月傳奇bt源碼 瀏覽:832
丹麥丹佛斯壓縮機 瀏覽:773
statapwcorr命令 瀏覽:135
怎樣看文件夾創建程序 瀏覽:641
文明重啟伺服器什麼時候重啟 瀏覽:981
app開發哪個比較好 瀏覽:978
程序員電腦卡了 瀏覽:832
壓縮空氣系統作用 瀏覽:404
三輪車用哪個app 瀏覽:29