真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于python黑色識別函數(shù)的信息

Python如何圖像識別?

1. 簡介。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),阿圖什網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:阿圖什等地區(qū)。阿圖什做網(wǎng)站價(jià)格咨詢:18980820575

圖像處理是一門應(yīng)用非常廣的技術(shù),而擁有非常豐富第三方擴(kuò)展庫的 Python 當(dāng)然不會錯過這一門盛宴。PIL (Python Imaging Library)是 Python 中最常用的圖像處理庫,目前版本為 1.1.7,我們可以?在這里?下載學(xué)習(xí)和查找資料。

Image 類是 PIL 庫中一個非常重要的類,通過這個類來創(chuàng)建實(shí)例可以有直接載入圖像文件,讀取處理過的圖像和通過抓取的方法得到的圖像這三種方法。

2. 使用。

導(dǎo)入 Image 模塊。然后通過 Image 類中的 open 方法即可載入一個圖像文件。如果載入文件失敗,則會引起一個 IOError ;若無返回錯誤,則 open 函數(shù)返回一個 Image 對象?,F(xiàn)在,我們可以通過一些對象屬性來檢查文件內(nèi)容,即:

1 import Image

2 ? im = Image.open("j.jpg")

3 ? print im.format, im.size, im.mode

4 JPEG (440, 330) RGB

這里有三個屬性,我們逐一了解。

format : 識別圖像的源格式,如果該文件不是從文件中讀取的,則被置為 None 值。

size : 返回的一個元組,有兩個元素,其值為象素意義上的寬和高。

mode : RGB(true color image),此外還有,L(luminance),CMTK(pre-press image)。

現(xiàn)在,我們可以使用一些在 Image 類中定義的方法來操作已讀取的圖像實(shí)例。比如,顯示最新載入的圖像:

1 im.show()

2 ?

輸出原圖:

3. 函數(shù)概貌。

3.1 ? ?Reading and Writing Images : open( infilename ) , save( outfilename )

3.2 ? ?Cutting and Pasting and Merging Images :

crop() : 從圖像中提取出某個矩形大小的圖像。它接收一個四元素的元組作為參數(shù),各元素為(left, upper, right, lower),坐標(biāo)系統(tǒng)的原點(diǎn)(0, 0)是左上角。

paste() :

merge() :

1 box = (100, 100, 200, 200)

2 ? region = im.crop(box)

3 ? region.show()

4 ? region = region.transpose(Image.ROTATE_180)

5 ? region.show()

6 ? im.paste(region, box)

7 ? im.show()

其效果圖為:

旋轉(zhuǎn)一幅圖片:

1 def roll(image, delta):

2 ?? ?"Roll an image sideways"

3

4 ?? ?xsize, ysize = image.size

5

6 ?? ?delta = delta % xsize

7 ?? ?if delta == 0: return image

8

9 ?? ?part1 = image.crop((0, 0, delta, ysize))

10 ?? ?part2 = image.crop((delta, 0, xsize, ysize))

11 ?? ?image.paste(part2, (0, 0, xsize-delta, ysize))

12 ?? ?image.paste(part1, (xsize-delta, 0, xsize, ysize))

13

14 ?? ?return image

3.3 ? ?幾何變換。

3.3.1 ? ?簡單的幾何變換。

1 out = im.resize((128, 128)) ? ? ? ? ? ? ? ? ? ? #

2 ?out = im.rotate(45) ? ? ? ? ? ? ? ? ? ? ? ? ? ??#逆時(shí)針旋轉(zhuǎn) 45 度角。

3 ?out = im.transpose(Image.FLIP_LEFT_RIGHT) ? ? ? #左右對換。

4 ?out = im.transpose(Image.FLIP_TOP_BOTTOM) ? ? ? #上下對換。

5 ?out = im.transpose(Image.ROTATE_90) ? ? ? ? ? ? #旋轉(zhuǎn) 90 度角。

6 ?out = im.transpose(Image.ROTATE_180) ? ? ? ? ? ?#旋轉(zhuǎn) 180 度角。

7 out = im.transpose(Image.ROTATE_270) ? ? ? ? ? ?#旋轉(zhuǎn) 270 度角。

各個調(diào)整之后的圖像為:

圖片1:

圖片2:

圖片3:

圖片4:

3.3.2 ? ?色彩空間變換。

convert() : 該函數(shù)可以用來將圖像轉(zhuǎn)換為不同色彩模式。

3.3.3 ? ?圖像增強(qiáng)。

Filters : 在 ImageFilter 模塊中可以使用 filter 函數(shù)來使用模塊中一系列預(yù)定義的增強(qiáng)濾鏡。

1 import ImageFilter

2 imfilter = im.filter(ImageFilter.DETAIL)

3 imfilter.show()

3.4 ? ?序列圖像。

即我們常見到的動態(tài)圖,最常見的后綴為 .gif ,另外還有 FLI / FLC 。PIL 庫對這種動畫格式圖也提供了一些基本的支持。當(dāng)我們打開這類圖像文件時(shí),PIL 自動載入圖像的第一幀。我們可以使用 seek 和 tell 方法在各幀之間移動。

1 import Image

2 im.seek(1) ? ? ? ?# skip to the second frame

3

4 try:

5 ?? ?while 1:

6 ?? ? ? ?im.seek( im.tell() + 1)

7 ?? ? ? ?# do something to im

8 except EOFError:

9 ?? ?pass

3.5 ? ?更多關(guān)于圖像文件的讀取。

最基本的方式:im = Image.open("filename")

類文件讀取:fp = open("filename", "rb"); im = Image.open(fp)

字符串?dāng)?shù)據(jù)讀?。篿mport StringIO; im = Image.open(StringIO.StringIO(buffer))

從歸檔文件讀?。篿mport TarIO; fp = TarIo.TarIO("Image.tar", "Image/test/lena.ppm"); im = Image.open(fp)

基本的 PIL 目前就練習(xí)到這里。其他函數(shù)的功能可點(diǎn)擊?這里?進(jìn)一步閱讀。

怎么用opencv和python,只保留深藍(lán)色部分,其他區(qū)域變?yōu)楹谏?/h2>

使用 cvInRangeS 函數(shù)過濾出深藍(lán)色區(qū)域即可。

OpenCVchm文檔上對函數(shù)的解釋:

InRangeS:檢查數(shù)組元素是否在兩個數(shù)量之間

void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst );

src :第一個原數(shù)組

lower:包括進(jìn)的下邊界.

upper :不包括進(jìn)的上邊界

dst :輸出數(shù)組必須是 8u 或 8s 類型.

python基礎(chǔ):內(nèi)置函數(shù)、方法、轉(zhuǎn)義字符大全

在寫python程序時(shí),常能用到一些函數(shù)和方法,總結(jié)一下,保存起來,方便查詢。

一、內(nèi)置函數(shù)

# abs()獲取數(shù)字絕對值

# chr(i)數(shù)字轉(zhuǎn)換為字符類型

# divmod() 獲取兩個數(shù)值的商和余數(shù)

# enumerate() 將可遍歷序列組合為索引序列

# float()轉(zhuǎn)換為浮點(diǎn)數(shù)

# format() 格式化字符串

# int()轉(zhuǎn)換為整數(shù)?

# input() 接受用戶輸入內(nèi)容

# len() 計(jì)算元素個數(shù)

# max() 返回最大值

# min() 返回最小值

# math.ceil() 返回指定數(shù)值的上舍整數(shù)

# open()打開文件并返回文件對象

# pow() 冪運(yùn)算

# print()打印輸出?

# range() 生成器

# reversed()反轉(zhuǎn)所有元素

# round()四舍五入求值

# sorted()對可迭代對象進(jìn)行排序?

# str() 轉(zhuǎn)換為字符串

# sum() 求和

# set() 創(chuàng)建集合

# tuple() 將序列轉(zhuǎn)換為元組

# zip()將可迭代對象打包成元組

二、方法

# append() 添加列表元素

# capitalize()首字母轉(zhuǎn)換為大寫?

# count()字符出現(xiàn)次數(shù)

# close() 關(guān)閉文件

# decode() 解碼字符串

# dict.keys() 獲取字典所有的鍵

# find()字符串首次出現(xiàn)的索引

# f.read() 讀取文件內(nèi)容

# dict.update()更新字典

# dict.items() 獲取字典鍵/值對

# dict.get() 返回指定鍵的值

# encode() 編碼字符串

# list.sort() 排序列表元素

# index() 元素首次出現(xiàn)的索引

# isdigit() 判斷字符串是否只由數(shù)字組成

# isupper() 是否所有字母都為大寫

# isnum() 判斷字符串是否由字母和數(shù)字組成

# islower() 是否所有字母都為小寫

# isdecimal() 檢查字符串是否只包含十進(jìn)制字符

# isalpha() 檢測字符串是否為純字母

# random.shuffle()隨機(jī)排序

# random.sample()返回?zé)o重復(fù)隨機(jī)數(shù)列表

# random.choice() 返回一個隨機(jī)元素

# random.randint() 生成指定范圍的隨機(jī)整數(shù)

# random.randrange() 生成指定范圍的指定遞增基數(shù)隨機(jī)整數(shù)

# pop() 刪除列表中的元素

# remove()刪除列表中的指定元素

# strip()去除空格

# lstrip()去除左側(cè)空格

# rstrip() 去除右側(cè)空格

# readline() 讀取單行內(nèi)容

# root.after() Tkinter中等待一段時(shí)間后再執(zhí)行命令

# str.isnumeric() 驗(yàn)證字符串是否為數(shù)字(適用于Unicode)

# split()分割字符串

# ord() 將字符轉(zhuǎn)換為整數(shù)

# replace() 字符串替換

# ljust() 左對齊填充

# rjust() 左對齊填充

# readlines() 讀取所有行內(nèi)容

# datetime.datetime.now() 返回指定時(shí)區(qū)的本地日期時(shí)間

# datetime.datetime.today() 獲取當(dāng)前本地日期的date對象

# datetime.utcnow() 返回當(dāng)前UTC時(shí)間的datetime對象

# time.strptime()把時(shí)間字符串解析為元組

# time.time()返回當(dāng)前時(shí)間的時(shí)間戳

# time.sleep()暫停指定秒數(shù)

# time.strftime() 返回指定格式的日期字符串

# time.mktime() 接收時(shí)間元組并返回時(shí)間戳

# os.getcwd() 獲取當(dāng)前工作目錄

# os.listdir() 獲取指定路徑下的目錄和文件列表

# os.makedirs() 遞歸創(chuàng)建目錄

# os.rename() 重命名目錄或文件

# os.path.exists() 判斷路徑是否存在

# upper() 全部轉(zhuǎn)換為大寫字母

# lower()? 全部轉(zhuǎn)換為小寫字母

# sys.stdout.write() 標(biāo)準(zhǔn)輸出打印

# sys.stdout.flush()刷新輸出?

# shutil.copy() 復(fù)制單個文件到另一文件或目錄

# write() 寫入文件內(nèi)容

# winsound.Beep() 打開電腦揚(yáng)聲器

# zfill() 在字符串前面填充0

三、循環(huán)語句

# break終止當(dāng)前循環(huán)

# continue 終止本循環(huán)進(jìn)入下一次循環(huán)

# with open() as file 以with語句打開文件(數(shù)據(jù)保存)

四、轉(zhuǎn)義字符

\ 行尾續(xù)行符

\' 單引號?

\'' 雙引號

\a 響鈴

\e 轉(zhuǎn)義

\n 換行

\t 橫向制表符

\f 換頁

\xyy 十六進(jìn)制yy代表的字符

\\反斜杠符號

\b 退格

\000 空

\v 縱向制表符

\r 回車

\0yy 八進(jìn)制yy代表的字符

\other 其他的字符以普通格式輸出

Python中幾個特殊的函數(shù)

1、 定義一個特殊的 __slots__ 變量,來限制該class實(shí)例能添加的屬性

2、 內(nèi)置的 @property(關(guān)鍵字) 裝飾器就是負(fù)責(zé)把一個方法變成屬性調(diào)用的。@property.setter(這里的property是類里面的屬性名)負(fù)責(zé)把一個setter方法變成屬性賦值。

3、 __str__(),__repr__(),__iter__(),__next__(),__getitem__(),__setitem__(),__delitem__(),__getattr__(),__call__()


分享文章:關(guān)于python黑色識別函數(shù)的信息
文章出自:http://weahome.cn/article/dodcphe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部