在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于深度學習的傳統圖像增強算法

電子設計 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-11 16:28 ? 次閱讀

引言

由于受到環境,光線等的影響,拍攝的照片清晰度和對比度比較低,不能夠突出圖像中的重點。圖像增強就是通過一定手段來增強圖像的對比度,使得其中的人物或者事物更加明顯,有利于后邊的識別等處理。本章介紹幾個傳統的圖像增強算法,并給出matlab實現代碼,看一看不同算法的實現效果,最后再介紹一下深度學習在圖像增強上的應用。

1. 直方圖均衡
在直方圖中,如果灰度級集中于高灰度區域,圖像低灰度就不容易分辨,如果灰度級集中于低灰度區域,那么高灰度就不容易分辨。為了能夠讓高低灰度都容易分辨,最好的辦法是將圖像進行轉換,使得灰度級分布概率相同。這就是直方圖均衡的目的。假設圖像經過如下變換:

Matlab代碼如下:
function histogramEqual

imgData=imread('../data/img0.jpg');
gray=rgb2gray(imgData);
imshow(gray);
imwrite(gray, '../data/gray0.jpg');
%calculate histogram
histgramData=linspace(0, 0, 256);
[grayRow, grayColumn]=size(gray);
grayPixelNumber=grayRow*grayColumn;
for i=1:grayRow
for j=1:grayColumn
histgramData(gray(i, j)+1)=histgramData(gray(i, j)+1)+1;
end
end

%histogram equalization
histogramIntegral=linspace(0, 0, 256);
for i=1:256
for j=1:i
histogramIntegral(i)=histogramIntegral(i)+histgramData(j);
end
end

for i=1:grayRow
for j=1:grayColumn
gray(i, j)=round(255*histogramIntegral(gray(i, j)+1)/grayPixelNumber);
end
end

imshow(gray);
imwrite(gray, '../output/histogramEqual.jpg');
end

處理結果:

圖1.1 直方圖均衡化結果(左)原圖像(右)結果

2. Gamma變換

Gamma變換主要用于圖像修正,將灰度過高或者過低的圖片進行修正,增強對比度。變換公式是對每個像素進行乘積運算:

從下圖的gamma曲線中可以看出其變換原理:

圖2.1 圖像gamma變換

從圖中可以看出當r值大于1,會拉伸圖像中灰度級較高的區域,壓縮灰度級較低部分;當r值小于1時,會拉伸灰度級較低部分,而壓縮灰度級較高部分。這樣來調整圖像對比度。

Matlab代碼:
function imageGamma(r)

imgData=imread('../data/img0.jpg');
gray=rgb2gray(imgData);
[grayRow, grayColumn]=size(gray);

gray=double(gray);

for i=1:grayRow
for j=1:grayColumn
gray(i, j)=255*((gray(i, j)/255)^r);
gray(i, j)=round(gray(i, j));
end
end
gray=uint8(gray);

fileName='../output/gamma';
fileSuf='.jpg';
gammaStr=num2str(r);
file=[fileName, gammaStr, fileSuf];
imshow(gray);
imwrite(gray, file);

end

結果如下:

圖2.2 gamma變換(左)r=0.5(右)r=1.5

3. Laplace變換

對圖像進行二階微分操作可以突出圖像邊緣,增強細節。通常希望構造一個同性濾波器,其對圖像方向的變化不敏感。一個最簡單的同性濾波器就是laplace算子,定義為:

Matlab代碼為:

% g(x, y)=f(x, y)+c*delta2 f(x, y)

function laplace(c)

imgData=imread('../data/img0.jpg');
gray=rgb2gray(imgData);
[grayRow, grayColumn]=size(gray);

gray=double(gray);

%laplace
laplacePlate=[0, 1, 0; 1, -4, 1; 0, 1, 0];
laplaceResult=zeros(grayRow, grayColumn);
laplaceGray=zeros(grayRow, grayColumn);
laplaceGray=double(laplaceGray);
for i=1:grayRow
for j=1:grayColumn
for k=-1:1
for n=-1:1
if (i+k>=1) && (i+k=1) && (j+n grayValue=gray(i+k, j+n);
else
grayValue=0;
end
laplaceResult(i, j)=laplaceResult(i, j)+laplacePlate(k+2, n+2)*grayValue;
end
end
laplaceGray(i, j)=round(gray(i, j)+c*laplaceResult(i, j));
end
end

maxLaplaceGray=max(max(laplaceGray));
minLaplaceGray=min(min(laplaceGray));
laplaceGray=((laplaceGray-minLaplaceGray) .* 255) ./(maxLaplaceGray-minLaplaceGray);
laplaceGray=uint8(laplaceGray);
fileName='../output/laplace';
fileSuf='.jpg';
gammaStr=num2str(c);
file=[fileName, gammaStr, fileSuf];
figure('name', 'gray');
imshow(laplaceGray);
figure('name', 'laplace');
imshow(laplaceResult);
imwrite(laplaceGray, file);
imwrite(laplaceResult, '../output/laplaceResult.jpg');
end

結果為:

圖3.1 laplace算子增強(上左)laplace變換結果(上右)C=0.5(下)C=0.8

4. Retix算法

Retix是一種建立在光學物理特性基礎上的算法,假設入射光L(x, y)入射到物體上,經過反射R(x, y),進入到人眼的光變為:

為了降低卷積運算的的運算量,我們取了7x7的高斯卷積模板。

Matlab代碼為:

function singleRetix(c)

imgData=imread('../data/img0.jpg');
gray=rgb2gray(imgData);
[grayRow, grayColumn]=size(gray);
gray=double(gray);

gaussConv=zeros(grayRow, grayColumn);
for i=1:grayRow
for j=1:grayColumn
for k=-3:3
for n=-3:3
gaussValue=two_d_gauss(k, n, c);
if (i+k>=1) && (i+k=1) && (j+n grayValue=gray(i+k, j+n);
else
grayValue=0;
end
gaussConv(i, j)=gaussConv(i, j)+grayValue*gaussValue;
end
end
end
end
gray=log(gray);
gaussConv=log(gaussConv);
reflectGray=exp(gray-gaussConv);
maxReflectGray=max(max(reflectGray));
minReflectGray=min(min(reflectGray));
reflectGray=((reflectGray-minReflectGray) .* 255) ./ (maxReflectGray-minReflectGray);
reflectGray=uint8(reflectGray);

fileName='../output/retix';
fileSuf='.jpg';
gammaStr=num2str(c);
file=[fileName, gammaStr, fileSuf];
figure('name', 'processed');
imshow(reflectGray);
imwrite(reflectGray, file);

end

function res=two_d_gauss(x, y, c)
res=(1/sqrt(2*pi*c))*(-(x^2+y^2)/c^2);
end

結果:

圖4.1 Retix結果(左)sigma=90(右)sigma=150

5. 基于深度學習的圖像增強

LL-NET是第一個用深度學習來增強圖像的方法。在其論文中使用自動編碼器從表示學習的角度來解決低光圖像增強的問題,這些自動編碼器經過訓練以學習低光圖像中的基礎信號特征并自適應地增亮和去噪。LL-NET借鑒了SSDA網絡的稀疏特性,可以用來去除圖像中噪聲。運用網絡的泛華能力來提供低照度下的測試圖片,讓網絡來學習到圖片的特征,從而降低噪聲,提高圖像對比度。

網絡結構如下:

圖5.1 LL-NET網絡結構

結果為:

圖5.2 結果

結論

本文介紹了四種傳統的圖像增強算法,以及一種基于深度學習的方法。

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像增強算法

    關注

    0

    文章

    4

    瀏覽量

    5419
  • 深度學習
    +關注

    關注

    73

    文章

    5548

    瀏覽量

    122337
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    傳統機器學習方法和應用指導

    用于開發生物學數據的機器學習方法。盡管深度學習(一般指神經網絡算法)是一個強大的工具,目前也非常流行,但它的應用領域仍然有限。與深度
    的頭像 發表于 12-30 09:16 ?910次閱讀
    <b class='flag-5'>傳統</b>機器<b class='flag-5'>學習</b>方法和應用指導

    NPU在深度學習中的應用

    設計的硬件加速器,它在深度學習中的應用日益廣泛。 1. NPU的基本概念 NPU是一種專門針對深度學習算法優化的處理器,它與
    的頭像 發表于 11-14 15:17 ?1571次閱讀

    GPU深度學習應用案例

    GPU在深度學習中的應用廣泛且重要,以下是一些GPU深度學習應用案例: 一、圖像識別 圖像識別是
    的頭像 發表于 10-27 11:13 ?950次閱讀

    FPGA做深度學習能走多遠?

    并行計算的能力,可以在硬件層面并行處理大量數據。這種并行處理能力使得 FPGA 在執行深度學習算法時速度遠超傳統處理器,能夠提供更低的延遲和更高的吞吐量,從而加速模型訓練和推理過程,滿
    發表于 09-27 20:53

    深度識別算法包括哪些內容

    :CNN是深度學習中處理圖像和視頻等具有網格結構數據的主要算法。它通過卷積層、池化層和全連接層等組件,實現對圖像特征的自動提取和識別。 應
    的頭像 發表于 09-10 15:28 ?670次閱讀

    圖像識別算法都有哪些方法

    傳統方法和基于深度學習的方法。 傳統圖像識別算法 1.1 邊緣檢測 邊緣檢測是
    的頭像 發表于 07-16 11:14 ?6889次閱讀

    圖像識別算法的提升有哪些

    引言 圖像識別是計算機視覺領域的核心任務之一,旨在使計算機能夠自動地識別和理解圖像中的內容。隨著計算機硬件的發展和深度學習技術的突破,圖像
    的頭像 發表于 07-16 11:12 ?917次閱讀

    圖像識別算法的優缺點有哪些

    圖像識別算法可以快速地處理大量圖像數據,提高工作效率。與傳統的人工識別方法相比,圖像識別算法
    的頭像 發表于 07-16 11:09 ?2609次閱讀

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源
    的頭像 發表于 07-15 10:03 ?2500次閱讀

    深度學習算法在集成電路測試中的應用

    隨著半導體技術的快速發展,集成電路(IC)的復雜性和集成度不斷提高,對測試技術的要求也日益增加。深度學習算法作為一種強大的數據處理和模式識別工具,在集成電路測試領域展現出了巨大的應用潛力。本文將從
    的頭像 發表于 07-15 09:48 ?1565次閱讀

    利用Matlab函數實現深度學習算法

    在Matlab中實現深度學習算法是一個復雜但強大的過程,可以應用于各種領域,如圖像識別、自然語言處理、時間序列預測等。這里,我將概述一個基本的流程,包括環境設置、數據準備、模型設計、訓
    的頭像 發表于 07-14 14:21 ?3109次閱讀

    深度學習中的無監督學習方法綜述

    深度學習作為機器學習領域的一個重要分支,近年來在多個領域取得了顯著的成果,特別是在圖像識別、語音識別、自然語言處理等領域。然而,深度
    的頭像 發表于 07-09 10:50 ?1378次閱讀

    深度學習的基本原理與核心算法

    隨著大數據時代的到來,傳統機器學習方法在處理復雜模式上的局限性日益凸顯。深度學習(Deep Learning)作為一種新興的人工智能技術,以其強大的非線性表達能力和自
    的頭像 發表于 07-04 11:44 ?3228次閱讀

    神經網絡芯片與傳統芯片的區別和聯系

    引言 隨著人工智能技術的快速發展,深度學習算法圖像識別、自然語言處理、語音識別等領域取得了顯著的成果。然而,深度
    的頭像 發表于 07-04 09:31 ?1533次閱讀

    深度學習傳統機器學習的對比

    在人工智能的浪潮中,機器學習深度學習無疑是兩大核心驅動力。它們各自以其獨特的方式推動著技術的進步,為眾多領域帶來了革命性的變化。然而,盡管它們都屬于機器學習的范疇,但
    的頭像 發表于 07-01 11:40 ?2050次閱讀
    主站蜘蛛池模板: 日本免费精品视频 | 日韩怡红院 | 玖玖爱在线播放 | 狠狠色丁香婷婷综合欧美 | 一级毛片真人免费观看 | 天堂网在线新版www 天堂网在线资源 | 中文天堂最新版在线精品 | 欧美爽爽网 | 色狠狠狠色噜噜噜综合网 | 视色4se成人午夜精品 | 久久免费精品 | 免费看曰批女人爽的视频网址 | 国产伦精品一区二区三区网站 | 欧美乱理伦另类视频 | 在厨房乱子伦在线观看 | 天天骑夜夜操 | 老外一级黄色片 | 一级不卡毛片免费 | 国产色网站 | 免费在线观看的网站 | 亚洲另类电击调教在线观看 | 俺不色| 亚欧免费视频一区二区三区 | 午夜小视频免费 | 黄网站色在线视频免费观看 | 欧美色天使 | 91av免费 | 天天干天天干 | 一区在线播放 | 四虎永久精品免费观看 | 午夜免费视频 | 最新欧美精品一区二区三区 | 中国一级特黄视频 | xxxxx69日本老师hd | 国产精品久久婷婷六月丁香 | 久久久国产乱子伦精品 | 久久综合九色综合网站 | 五月天婷婷网亚洲综合在线 | 色宅男看片午夜大片免费看 | 亚洲怡红院在线 | 1024手机在线看永久免费 |