成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Programming Computer Vision with Python (學(xué)習(xí)筆記一)

huashiou / 2103人閱讀

摘要:接下來的學(xué)習(xí)筆記本人都將使用來代替。庫中提供的很多圖像操作都是分別作用于某個(gè)通道的數(shù)據(jù)。是最流行的開源色彩管理庫之一。目前只支持在增加和。模塊支持從圖像對(duì)象創(chuàng)建或的對(duì)象,方便被使用和顯示。模塊對(duì)圖像或指定區(qū)域的每個(gè)通道進(jìn)行統(tǒng)計(jì),包括等。

介紹

《Programming Computer Vision with Python》是一本介紹計(jì)算機(jī)視覺底層基本理論和算法的入門書,通過這本收可以學(xué)到有關(guān)對(duì)象識(shí)別、基于內(nèi)容的圖像搜索、光學(xué)字符識(shí)別、光流法、跟蹤、三維重建、立體成像、增強(qiáng)現(xiàn)實(shí)、姿態(tài)估計(jì)、全景創(chuàng)建、圖像分割、降噪、圖像分組等技術(shù)的實(shí)現(xiàn)原理。
英文版PDF下載:https://it-ebooks.info/book/836/
中文版介紹:http://book.douban.com/subject/25906843/

Python圖像處理

先介紹基本的圖像處理,包括圖像的讀取、轉(zhuǎn)換、縮放、導(dǎo)數(shù)計(jì)算、畫圖和保存,這些知識(shí)將為后面內(nèi)容的學(xué)習(xí)打下基礎(chǔ)。
作者選擇Python編寫例子,并使用一個(gè)叫PIL(Python Imaging Library)的第三方圖像處理庫。這里特別指出的是:PIL庫開發(fā)不活躍,并且很久沒更新了,所以有人基于它fork了另一個(gè)分支叫Pillow,Pillow保持與PIL相似的使用接口,解決了許多Bug,并同時(shí)兼容Python2和Python3,目前開發(fā)狀態(tài)活躍。接下來的學(xué)習(xí)筆記本人都將使用Pillow來代替PIL。

安裝Pillow

以Ubuntu系統(tǒng)為例:

#安裝python開發(fā)工具及包管理工具
sudo apt-get install python-dev python-pip 

#安裝一些需要支持的圖像格式開發(fā)包
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev 

#安裝Pillow圖像處理庫
sudo pip install pillow  
Pillow一瞥

Pillow主要包含了對(duì)各種圖像模式、圖像格式、顏色、過濾器的數(shù)據(jù)結(jié)構(gòu)(對(duì)象)表示,實(shí)現(xiàn)了對(duì)圖像模式轉(zhuǎn)換、格式轉(zhuǎn)換、過濾器應(yīng)用、常規(guī)圖像處理操作、圖像數(shù)據(jù)算術(shù)運(yùn)算、2D畫圖等功能,以模塊、類對(duì)外提供。
首先,先了解一下Pillow庫使用的一些基本概念:

Bands(圖像通道)
圖像的通道即圖像像素的組成部分,跟Channel應(yīng)該是同一個(gè)概念。比如RGB圖像有3個(gè)通道分別為紅、綠、藍(lán)。二值圖像和灰度圖像只有1個(gè)通道。PNG圖像有4個(gè)通道分別為R、G、B和alpha。庫中提供的很多圖像操作都是分別作用于某個(gè)通道的數(shù)據(jù)。

Modes(圖像模式)
圖像模式定義了像素的類型和位深,Pillow支持以下模式:

1 (1-bit pixels, black and white, stored with one pixel per byte)

L (8-bit pixels, black and white)

P (8-bit pixels, mapped to any other mode using a color palette)

RGB (3x8-bit pixels, true color)

RGBA (4x8-bit pixels, true color with transparency mask)

CMYK (4x8-bit pixels, color separation)

YCbCr (3x8-bit pixels, color video format)

LAB (3x8-bit pixels, the Lab color space)

HSV (3x8-bit pixels, Hue, Saturation, Value color space)

I (32-bit signed integer pixels)

F (32-bit floating point pixels)

模塊概覽
Pillow的功能劃分為許多模塊,我們簡(jiǎn)單過一下這些模塊的功能,以便在看到作者的示例代碼時(shí),可以快速知道這些代碼功能在Pillow哪些模塊中提供。因?yàn)樽髡呤褂玫腜IL庫已經(jīng)過時(shí),我們得用新的Pillow庫來重寫和改進(jìn)代碼。

Image模塊
提供了一個(gè)叫Image的類來表示圖像,以下提到的PIL圖像指的就是此類的對(duì)象。Image對(duì)象可以使用Image.new、Image.fromarray、Image.frombytes、Image.frombuffer等方法來構(gòu)造,也可以open一張圖片來構(gòu)造。Image類提供了一些對(duì)圖像進(jìn)行簡(jiǎn)單處理的方法(如:convert、copy、crop、filter、resize、rotate、save、show、transform等)和圖像的基本屬性/信息。以下代碼示例打開一張圖片,旋轉(zhuǎn)45度后顯示出來:

from PIL import Image
im = Image.open("bride.jpg")
im.rotate(45).show()

ImageChops模塊
提供了一些對(duì)圖像顏色通道的算術(shù)運(yùn)算,Chops為Channel Operations的縮寫,這些運(yùn)算通常是對(duì)兩幅圖像進(jìn)行的,并返回一幅處理后的圖像,大部分操作目前只支持8-bit通道。

ImageColor模塊
包含一個(gè)顏色表和一個(gè)從CSS3表示的顏色到RGB顏色的轉(zhuǎn)換器,主要用于方便構(gòu)造Image對(duì)象,即PIL.Image.new(mode, size, color=0)的color參數(shù)支持以下形式:

16進(jìn)制的顏色表示,如#rgb, #rrggbb

rgb函數(shù),如rgb(255,0,0), rgb(100%, 0%, 100%)

HSL(色相、飽和、亮度)函數(shù),如hsl(0,100%,100%),色相取值為0到360,飽和度和亮度取值為0%到100%

常規(guī)的HTML顏色名字,如red, Red

ImageCms模塊
提供對(duì)LittleCMS2色彩管理引擎的支持。Little CMS是最流行的開源色彩管理庫之一。

ImageDraw模塊
提供簡(jiǎn)單的2D畫圖功能,比如畫點(diǎn)、畫線、畫矩形、多邊形、文本、弧形、橢圓等,支持字體設(shè)置。

ImageEnhance模塊
提供一些類用于圖像增強(qiáng)操作,比如邊緣銳化、色彩平衡、對(duì)比度和亮度調(diào)節(jié)等。

ImageFile模塊
提供圖像文件的打開和保存,另外,還提供了一個(gè)Parser類,用于支持對(duì)圖片邊讀邊解碼(比如圖片邊從網(wǎng)絡(luò)上下載邊解碼的情景)。

ImageFilter模塊
預(yù)定義了一些過濾器,可以在Image.filter(filter)中作為參數(shù)使用:

BLUR(模糊效果)

CONTOUR(輪廓)

DETAIL(細(xì)節(jié))

EDGE_ENHANCE(邊緣加強(qiáng))

EDGE_ENHANCE_MORE(邊緣加強(qiáng))

EMBOSS(浮雕效果)

FIND_EDGES(查找邊緣)

SMOOTH(使光滑)

SMOOTH_MORE(使光滑)

SHARPEN(銳化)

ImageFont模塊
定義了類ImageFont表示位圖字體(點(diǎn)陣字體),字體對(duì)象可以作為參數(shù)傳給ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None)以指定的字體畫文本。
PIL使用自有格式存儲(chǔ)位圖字體,從1.1.4開始,支持TrueType和OpenType字體。

ImageGrab模塊
從屏幕截圖或從剪貼板獲取圖像,得到Image對(duì)象。目前只支持OSX(在3.0增加)和Windows。

ImageMath模塊
只提供了一個(gè)函數(shù)ImageMath.eval用于對(duì)圖像表達(dá)式(image expressions)進(jìn)行求值,這些表達(dá)式可以是對(duì)圖像數(shù)據(jù)每個(gè)bit的位運(yùn)算(&、|、^、~),也可以是內(nèi)置的一些運(yùn)算,比如對(duì)圖像的每個(gè)像素求絕對(duì)值、轉(zhuǎn)換圖像模式、轉(zhuǎn)float或int等。

ImageMorph模塊
提供圖像形態(tài)操作。

ImageOp模塊
提供一些可直接使用的圖像處理操作,如自動(dòng)調(diào)節(jié)對(duì)比度、自動(dòng)裁邊等。

ImagePalette模塊
提供調(diào)色板類,其中的方法都被標(biāo)記為experimental,文檔不詳。

ImagePath模塊
用于存儲(chǔ)和操作2維向量數(shù)據(jù)。Path對(duì)象可傳入ImageDraw模塊的相關(guān)方法。

ImageQt模塊
支持從PIL圖像對(duì)象創(chuàng)建PyQt4或PyQt5的QImage對(duì)象,方便被Qt使用和顯示。

ImageSequence模塊
支持枚舉出一個(gè)image sequence(圖像系統(tǒng),如fli動(dòng)畫文件)的所有幀。

ImageStat模塊
對(duì)圖像或指定區(qū)域的每個(gè)通道進(jìn)行統(tǒng)計(jì),包括count、sum、min/max等。

ImageTk模塊
支持從PIL圖像對(duì)象創(chuàng)建Tkinter(Python的GUI庫)的BitmapImage和PhotoImage對(duì)象。

ImageWin模塊
支持在Windows平臺(tái)上創(chuàng)建和顯示圖像,可與PythonWin和其它UI庫一起使用,為這些工具庫提供Windows設(shè)備上下文或windows句柄的訪問。

最后給出一個(gè)簡(jiǎn)單的示例,把書的彩色封面圖像轉(zhuǎn)為灰度圖像并顯示出來:

from PIL import Image
pil_im = Image.open("cover.png").convert("L")
pil_im.show()

效果如下:

小結(jié)

下一個(gè)筆記將介紹另外幾個(gè)圖像處理相關(guān)的庫。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44178.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測(cè)形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡(jiǎn)稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡(jiǎn)明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個(gè)提問: pyth...

    lifesimple 評(píng)論0 收藏0
  • Programming Computer Vision with Python學(xué)習(xí)筆記五)

    摘要:下面是二維空間的高斯分布函數(shù)公式這個(gè)公式被稱作高斯核。高斯模糊使用高斯平均算子來實(shí)現(xiàn)的圖像模糊叫高斯模糊,也叫高斯平滑被認(rèn)為是一種最優(yōu)的圖像平滑處理。 SciPy庫 SciPy庫,與之前我們使用的NumPy和Matplotlib,都是scipy.org提供的用于科學(xué)計(jì)算方面的核心庫。相對(duì)NumPy,SciPy庫提供了面向更高層應(yīng)用的算法和函數(shù)(其實(shí)也是基于NumPy實(shí)現(xiàn)的),并以子模塊...

    Rocko 評(píng)論0 收藏0
  • Programming Computer Vision with Python學(xué)習(xí)筆記八)

    摘要:簡(jiǎn)稱庫是從擴(kuò)展下來的,提供了更豐富的圖像處理函數(shù),去噪函數(shù)除了還有算法,比如邊緣檢測(cè)還有以前簡(jiǎn)單提過的算子濾波器。下面我用看具體的例子,將和高斯平滑進(jìn)行對(duì)比效果對(duì)比如下明顯感覺使用的效果要比高斯平滑好很多。 圖像去噪(Image Denoising)的過程就是將噪點(diǎn)從圖像中去除的同時(shí)盡可能的保留原圖像的細(xì)節(jié)和結(jié)構(gòu)。這里講的去噪跟前面筆記提過的去噪不一樣,這里是指高級(jí)去噪技術(shù),前面提過的...

    FleyX 評(píng)論0 收藏0
  • Programming Computer Vision with Python學(xué)習(xí)筆記十二)

    摘要:圖像矩圖像矩或稱幾何矩是由在年提出的。矩給出了對(duì)圖像形狀的一種度量。使用建議的第二種采樣方法即以圖像中心進(jìn)行高斯分布采樣,長(zhǎng)度使用,然后在基礎(chǔ)上增加了旋轉(zhuǎn)的描述以及快速的計(jì)算方法,這種方法被稱為。 ORB(Oriented FAST and Rotated BRIEF)可用來替代SIFT(或SURF),它對(duì)圖像更具有抗噪特性,是一種特征檢測(cè)高效算法,其速度滿足實(shí)時(shí)要求,可用于增強(qiáng)圖像匹...

    xbynet 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<