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

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

python灰度化函數(shù),python數(shù)據(jù)生成灰度圖

怎樣使用Python圖像處理

Python圖像處理是一種簡(jiǎn)單易學(xué),功能強(qiáng)大的解釋型編程語(yǔ)言,它有簡(jiǎn)潔明了的語(yǔ)法,高效率的高層數(shù)據(jù)結(jié)構(gòu),能夠簡(jiǎn)單而有效地實(shí)現(xiàn)面向?qū)ο缶幊?,下文進(jìn)行對(duì)Python圖像處理進(jìn)行說(shuō)明。

在石泉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,石泉網(wǎng)站建設(shè)費(fèi)用合理。

當(dāng)然,首先要感謝“戀花蝶”,是他的文章“用Python圖像處理 ” 幫我堅(jiān)定了用Python和PIL解決問(wèn)題的想法,對(duì)于PIL的一些介紹和基本操作,可以看看這篇文章。我這里主要是介紹點(diǎn)我在使用過(guò)程中的經(jīng)驗(yàn)。

PIL可以對(duì)圖像的顏色進(jìn)行轉(zhuǎn)換,并支持諸如24位彩色、8位灰度圖和二值圖等模式,簡(jiǎn)單的轉(zhuǎn)換可以通過(guò)Image.convert(mode)函數(shù)完 成,其中mode表示輸出的顏色模式。例如''L''表示灰度,''1''表示二值圖模式等。

但是利用convert函數(shù)將灰度圖轉(zhuǎn)換為二值圖時(shí),是采用固定的閾 值127來(lái)實(shí)現(xiàn)的,即灰度高于127的像素值為1,而灰度低于127的像素值為0。為了能夠通過(guò)自定義的閾值實(shí)現(xiàn)灰度圖到二值圖的轉(zhuǎn)換,就要用到 Image.point函數(shù)。

深度剖析Python語(yǔ)法功能

深度說(shuō)明Python應(yīng)用程序特點(diǎn)

對(duì)Python數(shù)據(jù)庫(kù)進(jìn)行學(xué)習(xí)研究

Python開(kāi)發(fā)人員對(duì)Python經(jīng)驗(yàn)之談

對(duì)Python動(dòng)態(tài)類型語(yǔ)言解析

Image.point函數(shù)有多種形式,這里只討論Image.point(table, mode),利用該函數(shù)可以通過(guò)查表的方式實(shí)現(xiàn)像素顏色的模式轉(zhuǎn)換。其中table為顏色轉(zhuǎn)換過(guò)程中的映射表,每個(gè)顏色通道應(yīng)當(dāng)有256個(gè)元素,而 mode表示所輸出的顏色模式,同樣的,''L''表示灰度,''1''表示二值圖模式。

可見(jiàn),轉(zhuǎn)換過(guò)程的關(guān)鍵在于設(shè)計(jì)映射表,如果只是需要一個(gè)簡(jiǎn)單的箝位值,可以將table中高于或低于箝位值的元素分別設(shè)為1與0。當(dāng)然,由于這里的table并沒(méi)有什么特殊要求,所以可以通過(guò)對(duì)元素的特殊設(shè)定實(shí)現(xiàn)(0, 255)范圍內(nèi),任意需要的一對(duì)一映射關(guān)系。

示例代碼如下:

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部分通常要完成的任務(wù)相當(dāng)繁重但支撐這些工作的資源卻很少,這已經(jīng)成為公開(kāi)的秘密。任何承諾提高編碼效率、降低軟件總成本的IT解決方案都應(yīng)該進(jìn)行 周到的考慮。Python圖像處理所具有的一個(gè)顯著優(yōu)勢(shì)就是可以在企業(yè)的軟件創(chuàng)建和維護(hù)階段節(jié)約大量資金,而這兩個(gè)階段的軟件成本占到了軟件整個(gè)生命周期中總成本 的50%到95%。

Python清晰可讀的語(yǔ)法使得軟件代碼具有異乎尋常的易讀性,甚至對(duì)那些不是最初接觸和開(kāi)發(fā)原始項(xiàng)目的程序員都 能具有這樣的強(qiáng)烈感覺(jué)。雖然某些程序員反對(duì)在Python代碼中大量使用空格。

不過(guò),幾乎人人都承認(rèn)Python圖像處理的可讀性遠(yuǎn)勝于C或者Java,后兩 者都采用了專門(mén)的字符標(biāo)記代碼塊結(jié)構(gòu)、循環(huán)、函數(shù)以及其他編程結(jié)構(gòu)的開(kāi)始和結(jié)束。提倡Python的人還宣稱,采用這些字符可能會(huì)產(chǎn)生顯著的編程風(fēng)格差 異,使得那些負(fù)責(zé)維護(hù)代碼的人遭遇代碼可讀性方面的困難。轉(zhuǎn)載

python 圖像灰度化怎么處理alpha 值

圖像的灰度處理:

CV_LOAD_IMAGE_GRAYSCALE,這是最簡(jiǎn)單之間的辦法,在加載圖像時(shí)直接處理

IplImage* Igray=cvLoadImage("test.jpg",CV_LOAD_IMAGE_GRAYSCALE);

得到的圖像就是單通道的,也能夠用這個(gè)函數(shù):CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code );

code=CV_BGR2GRAY;

opencv還提供了非常多方式,我這邊就不一一舉例了。

數(shù)字圖像處理Python實(shí)現(xiàn)圖像灰度變換、直方圖均衡、均值濾波

import CV2

import copy

import numpy as np

import random

使用的是pycharm

因?yàn)樽罱戳恕躲y翼殺手2049》,里面Joi實(shí)在是太好看了所以原圖像就用Joi了

要求是灰度圖像,所以第一步先把圖像轉(zhuǎn)化成灰度圖像

# 讀入原始圖像

img = CV2.imread('joi.jpg')

# 灰度化處理

gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)

CV2.imwrite('img.png', gray)

第一個(gè)任務(wù)是利用分段函數(shù)增強(qiáng)灰度對(duì)比,我自己隨便寫(xiě)了個(gè)函數(shù)大致是這樣的

def chng(a):

if a 255/3:

b = a/2

elif a 255/3*2:

b = (a-255/3)*2 + 255/6

else:

b = (a-255/3*2)/2 + 255/6 +255/3*2

return b

rows = img.shape[0]

cols = img.shape[1]

cover = copy.deepcopy(gray)

for i in range(rows):

for j in range(cols):

cover[i][j] = chng(cover[i][j])

CV2.imwrite('cover.png', cover)

下一步是直方圖均衡化

# histogram equalization

def hist_equal(img, z_max=255):

H, W = img.shape

# S is the total of pixels

S = H * W * 1.

out = img.copy()

sum_h = 0.

for i in range(1, 255):

ind = np.where(img == i)

sum_h += len(img[ind])

z_prime = z_max / S * sum_h

out[ind] = z_prime

out = out.astype(np.uint8)

return out

covereq = hist_equal(cover)

CV2.imwrite('covereq.png', covereq)

在實(shí)現(xiàn)濾波之前先添加高斯噪聲和椒鹽噪聲(代碼來(lái)源于網(wǎng)絡(luò))

不知道這個(gè)椒鹽噪聲的名字是誰(shuí)起的感覺(jué)隔壁小孩都饞哭了

用到了random.gauss()

percentage是噪聲占比

def GaussianNoise(src,means,sigma,percetage):

NoiseImg=src

NoiseNum=int(percetage*src.shape[0]*src.shape[1])

for i in range(NoiseNum):

randX=random.randint(0,src.shape[0]-1)

randY=random.randint(0,src.shape[1]-1)

NoiseImg[randX, randY]=NoiseImg[randX,randY]+random.gauss(means,sigma)

if NoiseImg[randX, randY] 0:

NoiseImg[randX, randY]=0

elif NoiseImg[randX, randY]255:

NoiseImg[randX, randY]=255

return NoiseImg

def PepperandSalt(src,percetage):

NoiseImg=src

NoiseNum=int(percetage*src.shape[0]*src.shape[1])

for i in range(NoiseNum):

randX=random.randint(0,src.shape[0]-1)

randY=random.randint(0,src.shape[1]-1)

if random.randint(0,1)=0.5:

NoiseImg[randX,randY]=0

else:

NoiseImg[randX,randY]=255

return NoiseImg

covereqg = GaussianNoise(covereq, 2, 4, 0.8)

CV2.imwrite('covereqg.png', covereqg)

covereqps = PepperandSalt(covereq, 0.05)

CV2.imwrite('covereqps.png', covereqps)

下面開(kāi)始均值濾波和中值濾波了

就以n x n為例,均值濾波就是用這n x n個(gè)像素點(diǎn)灰度值的平均值代替中心點(diǎn),而中值就是中位數(shù)代替中心點(diǎn),邊界點(diǎn)周圍補(bǔ)0;前兩個(gè)函數(shù)的作用是算出這個(gè)點(diǎn)的灰度值,后兩個(gè)是對(duì)整張圖片進(jìn)行

#均值濾波模板

def mean_filter(x, y, step, img):

sum_s = 0

for k in range(x-int(step/2), x+int(step/2)+1):

for m in range(y-int(step/2), y+int(step/2)+1):

if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]

or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:

sum_s += 0

else:

sum_s += img[k][m] / (step*step)

return sum_s

#中值濾波模板

def median_filter(x, y, step, img):

sum_s=[]

for k in range(x-int(step/2), x+int(step/2)+1):

for m in range(y-int(step/2), y+int(step/2)+1):

if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]

or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:

sum_s.append(0)

else:

sum_s.append(img[k][m])

sum_s.sort()

return sum_s[(int(step*step/2)+1)]

def median_filter_go(img, n):

img1 = copy.deepcopy(img)

for i in range(img.shape[0]):

for j in range(img.shape[1]):

img1[i][j] = median_filter(i, j, n, img)

return img1

def mean_filter_go(img, n):

img1 = copy.deepcopy(img)

for i in range(img.shape[0]):

for j in range(img.shape[1]):

img1[i][j] = mean_filter(i, j, n, img)

return img1

完整main代碼如下:

if __name__ == "__main__":

# 讀入原始圖像

img = CV2.imread('joi.jpg')

# 灰度化處理

gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)

CV2.imwrite('img.png', gray)

rows = img.shape[0]

cols = img.shape[1]

cover = copy.deepcopy(gray)

for i in range(rows):

for j in range(cols):

cover[i][j] = chng(cover[i][j])

CV2.imwrite('cover.png', cover)

covereq = hist_equal(cover)

CV2.imwrite('covereq.png', covereq)

covereqg = GaussianNoise(covereq, 2, 4, 0.8)

CV2.imwrite('covereqg.png', covereqg)

covereqps = PepperandSalt(covereq, 0.05)

CV2.imwrite('covereqps.png', covereqps)

meanimg3 = mean_filter_go(covereqps, 3)

CV2.imwrite('medimg3.png', meanimg3)

meanimg5 = mean_filter_go(covereqps, 5)

CV2.imwrite('meanimg5.png', meanimg5)

meanimg7 = mean_filter_go(covereqps, 7)

CV2.imwrite('meanimg7.png', meanimg7)

medimg3 = median_filter_go(covereqg, 3)

CV2.imwrite('medimg3.png', medimg3)

medimg5 = median_filter_go(covereqg, 5)

CV2.imwrite('medimg5.png', medimg5)

medimg7 = median_filter_go(covereqg, 7)

CV2.imwrite('medimg7.png', medimg7)

medimg4 = median_filter_go(covereqps, 7)

CV2.imwrite('medimg4.png', medimg4)

python io. imread如何設(shè)置參數(shù),使讀取的圖片為灰度圖?

方法一:在使用OpenCV讀取圖片的同時(shí)將圖片轉(zhuǎn)換為灰度圖:

img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)

print("cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)結(jié)果如下:")

print('大小:{}'.format(img.shape))

print("類型:%s"%type(img))

print(img)

運(yùn)行結(jié)果如下圖所示:

方法二:使用OpenCV,先讀取圖片,然后在轉(zhuǎn)換為灰度圖:

img = cv2.imread(imgfile)

#print(img.shape)

#print(img)

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Y = 0.299R + 0.587G + 0.114B

print("cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)結(jié)果如下:")

print('大小:{}'.format(gray_img.shape))

print("類型:%s" % type(gray_img))

print(gray_img)

運(yùn)行結(jié)果如下:

方法三:使用PIL庫(kù)中的Image模塊:

img = np.array(Image.open(imgfile).convert('L'), 'f') #讀取圖片,灰度化,轉(zhuǎn)換為數(shù)組,L = 0.299R + 0.587G + 0.114B。'f'為float類型

print("Image方法的結(jié)果如下:")

print('大?。簕}'.format(img.shape))

print("類型:%s" % type(img))

print(img)


分享名稱:python灰度化函數(shù),python數(shù)據(jù)生成灰度圖
分享路徑:http://weahome.cn/article/hodeji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部