亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

用Python+OpenCV對比圖像質(zhì)量的幾種方法

系統(tǒng) 2308 0

前言

圖片的本質(zhì)就是大量像素在二維平面上的組合,每個像素點(diǎn)用數(shù)字化方式記錄顏色。可以直觀的想象,一張圖片就是一個巨大的電子?xùn)鸥瘢總€格子內(nèi)有一盞燈泡,這個燈泡可以變換256的三次方種顏色,就像下面這張卡通像素圖一樣,越清晰的圖片像素越密集。

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第1張圖片

這一次來看看OpenCV提供的兩種圖像質(zhì)量對比方式(PSNR & SSIM)及其擴(kuò)展, 這篇文章會涉及到一點(diǎn)數(shù)學(xué)公式,順便介紹一個我用過的生成公式的最佳在線編輯工具,秒殺所有收費(fèi)工具。

鏈接在這里, 請收好:?https://www.mathcha.io/editor

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第2張圖片

1. MSE對比

均方差 MSE(Mean Squared Error)對比, 思路是對兩張尺寸完全相同的圖片一個個像素進(jìn)行對比,對比的數(shù)值就是顏色。注意下面公式有兩個維度,因?yàn)槲覀儗Ρ鹊膱D像是像素矩陣,m and n 代表行數(shù)和列數(shù)。

MSE formula

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第3張圖片

MSE公式自己用numpy寫幾行代碼實(shí)現(xiàn),這里唯一要注意的是我找的圖片是彩色的,因?yàn)橛蠦GR3個顏色通道所以MSE要除以3得到平均值。

有了核心邏輯后準(zhǔn)備一下素材 - 著名的經(jīng)典圖片Lena,再手工壓縮75%, 90%, 95%放置入lena folder. Lena是1972年12月花花公子的封面女郎,這張照片只是裸體插頁的1/3,下面少兒不宜部分被截?cái)嗔耍磩h節(jié)原圖在卡耐基梅隆大學(xué)的網(wǎng)頁上還能找到(Warning: contains nudity)。

至于為什么選取她的照片,據(jù)說這張圖片包含了各種細(xì)節(jié),平滑區(qū)域,陰影和紋理,是完美的測試圖像。其實(shí)都是扯淡,主要因?yàn)樗?dāng)年是個迷人的美女,深受老一代美國碼農(nóng)歡迎。

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第4張圖片

2. PSNR對比

PSNR (Peak Signal to Noise Ratio)是最廣泛使用的一種圖像客觀評價(jià)指標(biāo),通常用來評價(jià)一副圖像壓縮后與原圖對比質(zhì)量的好壞,這個值大概在30dB到50dB之間,PSNR值越高則壓縮后失真越小,如果差異非常明顯可能會得到15甚至更低的值。

所以MSE或者PSNR也好主要是對比完全一樣但是壓縮重構(gòu)的圖片,OpenCV官方文檔說這也是逐幀比較視頻差異的最常用方式,畢竟它簡單,運(yùn)行速度快。

但其呈現(xiàn)的差異有時(shí)候與人的主觀感受不一致,所以O(shè)penCV還提供了結(jié)構(gòu)相似性算法SSIM做出改進(jìn)。下面是PSNR公式,也是在MSE基礎(chǔ)上的進(jìn)一步擴(kuò)展,這里MAX表示圖像顏色最大值,8bit圖像取值為255

3. SSIM對比

自然圖像具備高度結(jié)構(gòu)性,臨近的像素間存在強(qiáng)相關(guān)性。

SSIM考慮了人眼的生物特征,是基于感知的計(jì)算模型,人類視覺系統(tǒng)就是從可視區(qū)域內(nèi)獲取結(jié)構(gòu)信息,所以我們也可以檢測結(jié)構(gòu)信息的差異來對比圖片,這和MSE或者PSNR通過線性變換來分解信號有本質(zhì)上的不同。

SSIM的測量體系由三個模塊組成: 亮度,對比度和結(jié)構(gòu)。

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第5張圖片

三個模塊的對比函數(shù)組合之后得到SSIM的公式如下:

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第6張圖片

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第7張圖片

下面是完整代碼實(shí)現(xiàn)把三種score都打印出來看看,三種評測函數(shù)都直接改用了scikit-image庫提供的現(xiàn)成方法,實(shí)驗(yàn)過結(jié)果和前面的實(shí)現(xiàn)是一樣的。SSIM的score范圍從-1到1,1表示和原圖完全一致。

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第8張圖片

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第9張圖片

下面繼續(xù)用SSIM來玩玩找不同游戲看看,我在網(wǎng)上找了兩張圖片,第一張是原圖,第二張是PS后有N處差異,看看如何用SSIM快速找出答案。

原圖

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第10張圖片

修改圖

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第11張圖片

新開一個文件來實(shí)現(xiàn)邏輯:首先載入文件并轉(zhuǎn)成grayscale, 并計(jì)算出SSIM; 核心邏輯在于line 22通過OSTU找出自適應(yīng)閾值,line 23行根據(jù)這個閾值來提取輪廓,最后畫方框出來。

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第12張圖片

對比結(jié)果,一秒找出八處不同

用Python+OpenCV對比圖像質(zhì)量的幾種方法_第13張圖片

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 九九365资源稳定资源站 | 九九精彩视频在线观看视频 | 国产成人lu在线视频 | 真实国产乱人伦在线视频播放 | 特黄特色大片免费播放器999 | 欧美综合图片区 | 免费爱爱片 | 日本大蕉香蕉大视频在线观看 | 四虎成人精品在永久在线观看 | 国产久视频 | 欧美末成年videos在线观看 | 久久精品亚洲乱码伦伦中文 | 国产91页 | 婷婷中文网 | 丁香狠狠色婷婷久久综合 | 国产视频在线观看福利 | 伊人久久精品亚洲精品一区 | 一本一本久久α久久精品66 | 自拍偷自拍亚洲精品被多人伦好爽 | 狠狠色噜噜狠狠狠狠奇米777 | 国产精品成在线观看 | 亚洲欧洲毛片 | 美女福利在线观看 | 欧美一级毛片免费大全 | 久久爱噜噜噜噜久久久网 | 精品九九在线 | 亚洲永久精品一区二区三区 | 一级aa 毛片高清免费看 | 国产亚洲欧美精品久久久 | 伊人精品成人久久综合欧美 | 国产69精品久久久久99 | 欧美精品一区二区精品久久 | 亚洲第一区二区快射影院 | 亚洲精品综合一区二区三区在线 | 欧美色视频在线观看 | 黄色片在线观看网址 | 国产一级一片免费播放i | 热久久视久久精品18国产 | 欧美乱大交xxxxx另类 | 国产精品露脸张开双腿 | 中文在线1区二区六区 |