欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python讀圖像函數(shù) python讀取圖像的幾種方法

python讀取保存多幀圖片數(shù)量少了

cv2.imshow("left", img_left)

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為連江企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)連江網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

filename3=str(number)+'n3'+'.jpg' #打印第number張圖片+增值方式+保存類型

cv2.imwrite(savedpath + filename3, img_left)

"""

# 數(shù)據(jù)增強(qiáng)實(shí)現(xiàn)

"""

import cv2

import numpy as np

import os

# 圖像平移

def img_translation(image):

# 圖像平移 下、上、右、左平移

M = np.float32([[1, 0, 0], [0, 1, 100]])

img_down = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, 0], [0, 1, -100]])

img_up = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, 100], [0, 1, 0]])

img_right = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

M = np.float32([[1, 0, -100], [0, 1, 0]])

img_left = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

# 保存圖片,需要保存上述的哪一圖片,就在cv2.imwrite()中,將哪一圖片名放入。

# filename='xxx' +'.jpeg'

# cv2.imwrite(savedpath + filename, img_left)

# 顯示圖形

cv2.imshow("down", img_down)

filename0=str(number)+'n0'+'.jpg'

cv2.imwrite(savedpath + filename0, img_down)

cv2.imshow("up", img_up)

filename1=str(number)+'n1'+'.jpg'

cv2.imwrite(savedpath + filename1, img_up)

cv2.imshow("right", img_right)

filename2=str(number)+'n2'+'.jpg'

cv2.imwrite(savedpath + filename2, img_right)

cv2.imshow("left", img_left)

filename3=str(number)+'n3'+'.jpg'

cv2.imwrite(savedpath + filename3, img_left)

# 圖像縮放

def img_scale(image):

result = cv2.resize(image, (224, 224))

cv2.imshow("scale", result)

filename=str(number)+'n5'+'.jpg'

cv2.imwrite(savedpath + filename, result)

# 圖像翻轉(zhuǎn)

def img_flip(image):

# 0以X軸為對(duì)稱軸翻轉(zhuǎn),0以Y軸為對(duì)稱軸翻轉(zhuǎn), 0X軸Y軸翻轉(zhuǎn)

horizontally = cv2.flip(image, 0) # 水平鏡像

vertically = cv2.flip(image, 1) # 垂直鏡像

hv = cv2.flip(image, -1) # 水平垂直鏡像

# 顯示圖形

cv2.imshow("Horizontally", horizontally)

filename1=str(number)+'n6'+'.jpg'

cv2.imwrite(savedpath + filename1, horizontally)

cv2.imshow("Vertically", vertically)

filename2=str(number)+'n7'+'.jpg'

cv2.imwrite(savedpath + filename2, vertically)

cv2.imshow("Horizontally Vertically", hv)

filename3=str(number)+'n8'+'.jpg'

cv2.imwrite(savedpath + filename3, hv)

# 圖像旋轉(zhuǎn)

def img_rotation(image):

# 原圖的高、寬 以及通道數(shù)

rows, cols, channel = image.shape

# 繞圖像的中心旋轉(zhuǎn)

# 參數(shù):旋轉(zhuǎn)中心 旋轉(zhuǎn)度數(shù) scale

M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 30, 1)

# 參數(shù):原始圖像 旋轉(zhuǎn)參數(shù) 元素圖像寬高

rotated = cv2.warpAffine(image, M, (cols, rows))

# 顯示圖像

cv2.imshow("rotated", rotated)

filename1=str(number)+'n9'+'.jpg'

cv2.imwrite(savedpath + filename1, rotated)

#選裝60度

W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)

# 參數(shù):原始圖像 旋轉(zhuǎn)參數(shù) 元素圖像寬高

rotated1 = cv2.warpAffine(image, W, (cols, rows))

cv2.imshow("rotated", rotated)

filename2=str(number)+'n12'+'.jpg'

cv2.imwrite(savedpath + filename2, rotated1)

#選裝145度

W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)

# 參數(shù):原始圖像 旋轉(zhuǎn)參數(shù) 元素圖像寬高

rotated2 = cv2.warpAffine(image, W, (cols, rows))

cv2.imshow("rotated", rotated)

filename3=str(number)+'n13'+'.jpg'

cv2.imwrite(savedpath + filename3, rotated2)

# 圖像加噪

def img_noise(image, mean=0, var=0.001):

'''

添加高斯噪聲

mean : 均值

var : 方差

'''

image = np.array(image / 255, dtype=float)

noise = np.random.normal(mean, var ** 0.5, image.shape)

out = image + noise

if out.min() 0:

low_clip = -1.

else:

low_clip = 0.

out = np.clip(out, low_clip, 1.0)

out = np.uint8(out * 255)

cv2.imshow("noise", out)

filename3=str(number)+'n10'+'.jpg'

cv2.imwrite(savedpath + filename3, out)

# 圖像亮度調(diào)節(jié)

def img_brightness(image):

contrast = 1 # 對(duì)比度

brightness = 100 # 亮度

pic_turn = cv2.addWeighted(image, contrast, image, 0, brightness)

# cv2.addWeighted(對(duì)象,對(duì)比度,對(duì)象,對(duì)比度)

'''cv2.addWeighted()實(shí)現(xiàn)的是圖像透明度的改變與圖像的疊加'''

cv2.imshow('bright', pic_turn) # 顯示圖片

filename3=str(number)+'n11'+'.jpg'

cv2.imwrite(savedpath + filename3, pic_turn)

if __name__ == '__main__':

i = 0

path = '../Data/'

print(path)

savedpath = './result_new/'

filelist = os.listdir(path)

total_num = len(filelist)

for item in filelist:

number = i + 1

i = number

print("######")

print("打印到第",i,"張圖片")

src = cv2.imread(path + item)

img_translation(src)

img_scale(src)

img_flip(src)

img_rotation(src)

img_noise(src)

img_brightness(src)

cv2.waitKey(0)

cv2.destroyAllWindows()

代碼較為繁瑣,有空之后進(jìn)行優(yōu)化

輸出結(jié)果

如何采用Python讀取一個(gè)圖像

我們可以用python實(shí)現(xiàn)很多功能,那么如何用python讀取一個(gè)圖像呢?下面我給大家分享一下。

工具/材料

CMD命令行

01

首先按下Win+R組合鍵打開(kāi)運(yùn)行界面,輸入CMD,如下圖所示

02

接下來(lái)在彈出的CMD界面中導(dǎo)入Python的圖像處理模塊PIL,如下圖所示

03

接下來(lái)利用PIL模塊的open方法讀取圖像,只要在括號(hào)里傳入圖像地址即可,如下圖所示

04

最后執(zhí)行程序我們就可以看到程序自動(dòng)調(diào)用圖像識(shí)別軟件進(jìn)行圖像的讀取了,如下圖所示

python處理圖片數(shù)據(jù)?

生成一張純色的圖片

先設(shè)置圖片的顏色,接著利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設(shè)置成rgba,類似的還有rgb,L(灰度圖等),尺寸設(shè)定為640,480,這個(gè)可以根據(jù)自己的情況設(shè)定,顏色同樣如此。

批量生成圖片

上面生成了一張圖片,那要生成十張圖片呢,這種步驟一樣,只是顏色改變的,利用循環(huán)就可以解決。首先創(chuàng)建一個(gè)顏色列表,把要生成的圖片顏色放進(jìn)去。接著循環(huán)獲取不同的顏色,保存的時(shí)候利用字符串拼接的方法改變圖片的名字。

本地生成的圖片

封裝成函數(shù)

前面的方法已經(jīng)可以批量生成圖片了,為了通用性強(qiáng)一點(diǎn),我們可以封裝成函數(shù),把哪些可以改變的參數(shù)單獨(dú)抽離出來(lái)。尺寸也同樣,使用的時(shí)候,可以根據(jù)自己的需要定義顏色列表和尺寸。當(dāng)然還有加一些提示用語(yǔ)和報(bào)錯(cuò)兼容性,這里就不講了。

本地生成的圖片

讀取圖片

python基礎(chǔ)——讀取圖片

圖像后綴名的轉(zhuǎn)換:

要注意的是:對(duì)于彩色圖像,不管其格式是png,還是bmp,或者jpg,

在PIL中 ,使用Image模塊的open()函數(shù)打開(kāi)后,返回的圖像對(duì)象的模式都是 RGB ,對(duì)于灰度圖像,不管其圖像格式是PNG,還是BMP,JPG,打開(kāi)后,其模式為灰度L。

PNG BMP JPG彩色圖像格式之間的轉(zhuǎn)換:可以通過(guò)Image模塊的open函數(shù)和save函數(shù),具體來(lái)說(shuō),在打開(kāi)這些圖像時(shí),PIL會(huì)將他們解碼成三通道的RGB圖像。用戶可以基于RGB進(jìn)行處理。處理完畢后可以將其處理結(jié)果保存成PNG BMP JPG中任何格式。

PNG BMP JPG灰度圖像格式之間的轉(zhuǎn)換,同理也可以通過(guò)類似途徑,只是解碼后時(shí)模式為L(zhǎng)的圖像。

python庫(kù)可以用來(lái)讀取圖片的庫(kù)

1. PIL.Image.open??

無(wú)論是jpg還是png都能準(zhǔn)確讀取,PIL.Image.open 不直接返回numpy對(duì)象,可以用numpy提供的函數(shù)進(jìn)行轉(zhuǎn)換;

其他模塊都直接返回numpy.ndarray對(duì)象,通道順序?yàn)镽GB,通道值得默認(rèn)范圍為0-255。

拓展:

利用PIL中的Image函數(shù)讀取出來(lái)不是array格式,這時(shí)候需要用np.asarray() 或者np.array()函數(shù) 。

區(qū)別:np.array() 是深拷貝,np.asarray() 是淺拷貝

關(guān)于深拷貝和淺拷貝,這里給出一個(gè)說(shuō)明:

Python 中的對(duì)象之間賦值時(shí)是按引用傳遞的,如果需要拷貝對(duì)象,需要使用標(biāo)準(zhǔn)庫(kù)中的copy模塊。

1. copy.copy 淺拷貝 只拷貝父對(duì)象,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象。

2. copy.deepcopy 深拷貝 拷貝對(duì)象及其子對(duì)象

一個(gè)很好的例子:

2. cv2.imread

使用opencv讀取圖像,直接返回numpy.ndarray 對(duì)象,通道順序?yàn)锽GR ,注意是BGR,通道值默認(rèn)范圍0-255

cv2.imread():讀入圖片,共兩個(gè)參數(shù):第一個(gè)參數(shù)為要讀入的圖片文件名,第二個(gè)參數(shù)為如何讀取圖片(cv2.IMREAD_COLOR:讀入一副彩色圖片;cv2.IMREAD_GRAYSCALE:灰度圖片;cv2.IMREAD_UNCHANGED:讀入一幅圖片,并包括其alpha通道。)

cv2.imread()不能有中文路徑,否則讀取不出來(lái)

cv2.imread() 讀出來(lái)同樣是array形式,但是如果是單通道的圖,讀出來(lái)的是三通道的。

3. matplotlib.image.imread

用于顯示圖片matplotlib?用于讀取圖片并且讀取出來(lái)就是array格式

解決使用plt.savefig 保存圖片時(shí)一片空白 : 在plt.show() 之前調(diào)用 plt.savefig();

4. scipy.ndimage.imread

scipy.ndimage.imread(*args,?**kwds)?? Use ``matplotlib.pyplot.imread`` instead.

Returns:imread:ndarray(多維數(shù)組)

5. scipy.misc.imread

scipy.misc.imread(name, flatten=False, mode=None)

Use ``imageio.imread`` instead.

返回:imread: ndarray。通過(guò)讀取圖像獲得的陣列 。讀出來(lái)是array 形式,并且按照(H,W,C)形式保存

4. skimage.io.imread

scikit-image和numpy,matplotlib,scikit-learn等包都是Scipy項(xiàng)目的成員,通用numpy數(shù)組作為基本數(shù)據(jù)格式。在python中載入包名為skimage:所得即為numpy數(shù)組。

io.imread讀出圖片格式是uint8(unsigned int);value是numpy array;圖像數(shù)據(jù)是以RGB的格式進(jìn)行存儲(chǔ)的,通道值默認(rèn)范圍0-255。

分享文章:python讀圖像函數(shù) python讀取圖像的幾種方法
文章轉(zhuǎn)載:http://chinadenli.net/article18/higpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站導(dǎo)航品牌網(wǎng)站建設(shè)面包屑導(dǎo)航動(dòng)態(tài)網(wǎng)站外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名