电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

瀏覽:39日期:2022-07-01 14:00:15

為了得到更加清晰的圖像我們需要通過(guò)技術(shù)對(duì)圖像進(jìn)行處理,比如使用對(duì)比度增強(qiáng)的方法來(lái)處理圖像,對(duì)比度增強(qiáng)就是對(duì)圖像輸出的灰度級(jí)放大到指定的程度,獲得圖像質(zhì)量的提升。本文主要通過(guò)代碼的方式,通過(guò)OpenCV的內(nèi)置函數(shù)將圖像處理到我們理想的結(jié)果。

灰度直方圖

灰度直方圖通過(guò)描述灰度級(jí)在圖像矩陣中的像素個(gè)數(shù)來(lái)展示圖像灰度級(jí)的信息,通過(guò)灰度直方圖的統(tǒng)計(jì)我們可以看到每個(gè)灰度值的占有率。下面是一個(gè)灰度直方圖的實(shí)現(xiàn):

import cv2import numpy as npimport sysimport matplotlib.pyplot as plt#計(jì)算灰度直方圖def calcGrayHist(image): rows,clos = image.shape #創(chuàng)建一個(gè)矩陣用于存儲(chǔ)灰度值 grahHist = np.zeros([256],np.uint64) print(’這是初始化矩陣’) print(grahHist ) for r in range(rows): for c in range(clos): #通過(guò)圖像矩陣的遍歷來(lái)將灰度值信息放入我們定義的矩陣中 grahHist[image[r][c]] +=1 print(’這是賦值后的矩陣’) print(grahHist) return grahHistif __name__=='__main__': image = cv2.imread('../img/aa.jpg',cv2.IMREAD_GRAYSCALE) grahHist = calcGrayHist(image) x_range = range(256) plt.plot(x_range,grahHist,’-’,linewidth= 3,c=’k’) #設(shè)置坐標(biāo)軸的范圍 y_maxValue = np.max(grahHist) plt.axis([0,255,0,y_maxValue]) #設(shè)置標(biāo)簽 plt.xlabel(’gray Level’) plt.ylabel('number of pixels') #顯示灰度直方圖 plt.show()

運(yùn)行結(jié)果

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

線性變換

線性變換的公式為:

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

圖像的線性變換無(wú)疑就是利用矩陣的乘法就行線性變換,比如一個(gè)矩陣I ,2I,3I (np.unt8 ndarry類(lèi)型就是unt8類(lèi)型)就是一個(gè)矩陣的變換.

import cv2import numpy as npimport sysif __name__=='__main__': img = cv2.imread('../img/ae.jpg',cv2.IMREAD_GRAYSCALE) a=2 #線性變換 定義float類(lèi)型 O = float(a)*img #數(shù)據(jù)截取 如果大于255 取 255 O[0>255] = 255 #數(shù)據(jù)類(lèi)型的轉(zhuǎn)換 O = np.round(O) O = O.astype(np.uint8) cv2.imshow('img',img) cv2.imshow(’enhance’,O) cv2.waitKey(0) cv2.destroyAllWindows()

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

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

灰度級(jí)范圍越大就代表對(duì)比度越高,反之對(duì)比度越低視覺(jué)上清晰度就越低。我們通過(guò)a=2的線性對(duì)比度拉伸將灰度級(jí)范圍擴(kuò)大到[0,255]之間,如上圖我們改變灰度級(jí)的范圍后圖像變的清晰。

直方圖正規(guī)化

將圖像O中的最小灰度級(jí)記為OminOmin,最大灰度級(jí)記為OmaxOmax,假如輸出的圖像P的灰度級(jí)范圍為[Pmin,PmaxPmin,Pmax],則O 與 P的關(guān)系為:

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

其中P(r,c)就代表P的第r行第c列的灰度值。這個(gè)過(guò)程就是直方圖的正規(guī)化。我們一般令P的范圍是[0,255],所以直方圖的正規(guī)化是在求a,b變換的值的方法,我們可以得到:

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

下面我們使用OpenCV來(lái)實(shí)現(xiàn)上面的理論:

import cv2import numpy as npimport sysfrom enhance.GrayHist import mgetif __name__=='__main__': img = cv2.imread('../img/o3.jpg',cv2.IMREAD_GRAYSCALE) #求出img 的最大最小值 Maximg = np.max(img) Minimg = np.min(img) print(Maximg, Minimg, ’-----------’) #輸出最小灰度級(jí)和最大灰度級(jí) Omin,Omax = 0,255 #求 a, b a = float(Omax - Omin)/(Maximg - Minimg) b = Omin - a*Minimg print(a,b,’-----------’) #線性變換 O = a*img + b O = O.astype(np.uint8) #利用灰度直方圖進(jìn)行比較 mget為GrayHist中的寫(xiě)方法 mget(img) mget(O) cv2.imshow(’img’,img) cv2.imshow(’enhance’,O) cv2.waitKey(0) cv2.destroyAllWindows()

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

伽瑪變換

將一張圖的灰度值歸至[0,1]后,對(duì)于8位圖來(lái)說(shuō),除以255即可。伽瑪變換就是令O(r,c)=I(r,c)γI(r,c)γ,0≤r<H,0≤≤r<H,0≤c<W.當(dāng)γγ等于1時(shí)圖像不發(fā)生變換,而當(dāng)γγ大于0且小于1時(shí)就可以增強(qiáng)圖像的對(duì)比度,相反的當(dāng)γγ大于1時(shí)就可以使圖像對(duì)比度降低。 以下是伽瑪變換在OpenCV中的實(shí)現(xiàn):

import cv2import numpy as npimport sys# 伽瑪變換 power函數(shù)實(shí)現(xiàn)冪函數(shù)if __name__ == '__main__': img = cv2.imread('../img/ae.jpg', cv2.IMREAD_GRAYSCALE) # 歸1 Cimg = img / 255 # 伽瑪變換 gamma = 0.5 O = np.power(Cimg,gamma) #效果 cv2.imshow(’img’,img) cv2.imshow(’O’,O) cv2.waitKey(0) cv2.destroyAllWindows()

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

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

直方圖的均衡化 計(jì)算圖像的灰度直方圖 計(jì)算灰度直方圖的累加直方圖 根據(jù)累加的直方圖和直方圖均衡化的原理得到輸入灰度級(jí)與輸出灰度級(jí)之間的映射關(guān)系 使用循環(huán)的方式得到輸出圖像的每一個(gè)像素的灰度級(jí)

import cv2import numpy as npfrom enhance.GrayHist import calcGrayHist#直方圖的均衡化if __name__ == '__main__': image = cv2.imread('../img/ae.jpg', cv2.IMREAD_GRAYSCALE) rows,cols = image.shape #計(jì)算灰度直方圖 grayHist = calcGrayHist(image) #計(jì)算累加灰度直方圖 zeroCumuMoment = np.zeros([256], np.uint32) for p in range(256): if p == 0: zeroCumuMoment[p] = grayHist[0] else: zeroCumuMoment[p] = zeroCumuMoment[p-1] + grayHist[p] #根據(jù)累加的灰度直方圖得到輸入與輸出灰度級(jí)之間的映射關(guān)系 output = np.zeros([256],np.uint8) cofficient = 256.0/(rows*cols) for p in range(256): q = cofficient * float(zeroCumuMoment[p])-1 if q >=0: output[p] = np.math.floor(q) else: output[p] = 0 #得出均衡化圖像 equalHistimg = np.zeros(image.shape,np.uint8) for r in range(rows): for c in range(cols): equalHistimg[r][c] = output[image[r][c]] cv2.imshow(’image’,image) cv2.imshow(’histimage’,equalHistimg) cv2.waitKey(0) cv2.destroyAllWindows()

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

python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)

以上就是python 基于opencv實(shí)現(xiàn)圖像增強(qiáng)的詳細(xì)內(nèi)容,更多關(guān)于python opencv的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 光纤测温-荧光光纤测温系统-福州华光天锐光电科技有限公司 | 深圳律师咨询_深圳律师事务所_华荣【免费在线法律咨询】网 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 铸铁平台,大理石平台专业生产厂家_河北-北重机械 | 智慧消防-消防物联网系统云平台| 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 滚筒线,链板线,总装线,流水线-上海体能机电有限公司 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 27PR跨境电商导航 | 专注外贸跨境电商 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 |