国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【圖像修復】基于crimins算法解決圖像修復問題matlab源碼

2021-09-14 12:06 作者:Matlab工程師  | 我要投稿

一、前言

圖像修復的目的是利用圖像中已知信息根據(jù)一定規(guī)則對丟失區(qū)域進行修復。近年,隨著計算機技術(shù)和多媒體技術(shù)的不斷發(fā)展,圖像修復技術(shù)不僅用于傳統(tǒng)的破損照片修復,而且也應用在攝影、醫(yī)學、印刷、網(wǎng)絡傳輸、考古和交通監(jiān)控等領(lǐng)域的圖像或視頻修復中,成為計算機圖形學和計算機視覺中的研究熱點。

在這里插入圖片描述


四個方法有各自的特點和應用背景,其中使用頻率較高的,易理解的方法為基于樣本塊中的基于匹配的方法。所以針對這個方向,提供了一些可供研究學習的文獻,并且簡要的介紹了文獻的內(nèi)容,方便同學學習。
Criminisi 等人[4]首先提出基于匹配的樣本塊修復算法,隨后又大量的研究者參與研究對其的改進算法。主要分為兩方面:
(1)針對塊選擇方法(即填充順序);
(2)塊填充方法(即如何選擇 匹配塊以及如何填充)。
在填充順序方面,文獻[5]利用局部特征確定順序,張巖等人[6]利用梯度特征確定填充順序。文獻[7,8]根據(jù)待填充塊的 DCT系數(shù)決定填充順序。
在塊填充方面(即如何選擇匹配塊以及如何填充),張巖等人[6]利用圖像方向經(jīng)驗模型分解后的頻域信息尋找最優(yōu)匹配塊。Jemi等人[7]利用邊緣信息尋找最優(yōu)匹配塊。
文獻[1,2,3]作為綜述文獻細讀,了解基礎知識,然后對文獻[4,5,6,7,8]粗略閱讀,了解什么是圖像修復算法,算法研究的方法以及仿真結(jié)果是如何呈現(xiàn)的。
下一步精讀文獻[4,5,8],理解算法具體的實現(xiàn)原理和實現(xiàn)過程,在閱讀過程中,如果對英文的理解感覺有難度,可以先閱讀中文文獻[5,6]中對文獻[4]的描述。
建議仿真的文獻為[4]和[5],[4]為經(jīng)典算法,[5]為[4]的改進算法。所以仿真順序為先仿真文獻[4]后文獻[5],建議可以思考的問題:
(1)文獻[4]算法的優(yōu)點和缺點,并且在仿真過程中對此做出測試實驗。
(2)文獻[5]是對文獻[4]的改進,理解它是怎么改進的,改進的效果體現(xiàn)在的地方,不僅限于修復效果的提升,還有更多,比如運行速度等。
(3)更多問題可以自己在仿真的過程中發(fā)現(xiàn)并且驗證,這些都會是收獲。,
這里提到的8篇文獻,僅僅是拋磚引玉,并不是最新而且也不全面,如果想要更進一步全面的學習圖像修復領(lǐng)域,建議閱讀更多最新文獻。

二、criminisi算法分析

Criminisi算法通過在待修復區(qū)域邊緣上選取優(yōu)先權(quán)最高的像素點p,然后以p為中心構(gòu)造一個n×n大小的像素塊,然后在完好區(qū)域?qū)ふ遗c該模板塊最相似的樣本塊,并用找到的樣本塊更新模板塊中的待修復信息,最后更新已修復塊塊中像素點的置信度,并開始下一次迭代修復,直至修復完成。 圖1是Criminisi算法的修復原理

在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


1、算法中的優(yōu)先權(quán)
Criminisi算法中計算優(yōu)先權(quán)的公式如(1)所示:

在這里插入圖片描述


在這里插入圖片描述

clear ;clc close all; %% 原始圖像 srcImage= imread('indoor2.jpg'); figure, imshow(uint8(srcImage)); ? ? ?%破損圖像 %% 破損圖像 damage_size_m=60; ? damage_size_n=30; ? ? ? ? ? ? %破損塊大小 damageImage= srcImage; damageImage(140:140+damage_size_m,70:70+damage_size_n)= 0; figure imshow(uint8(damageImage)); ? ? ?%破損圖像 %% 等照度 damageImage=double(damageImage); [Gx, Gy] = gradient(damageImage); ? ? ? ? ?%圖像梯度 Gx = Gx / 255; Gy = Gy / 255; temp = Gx; Gx = -Gy; Gy = temp; ? ? ? ?%梯度旋轉(zhuǎn)90°為等照度 %% 初始化 % ? C ? ? ? ? ? ? ?置信度項,為與圖像大小相同的矩陣 % ? D ? ? ? ? ? ? ?數(shù)據(jù)項,為與圖像大小相同的矩陣 fillRegion = damageImage == 0; ? ? %fillRegion為待修復點為1,已存在點為0 sourceRegion = ~fillRegion; ? ? ? ?%sourceRegion待修復點為0,已存在點為1 sz = size(damageImage); ind = reshape(1:sz(1)*sz(2),sz(1),sz(2)); ? ? ? %找出各點的在從列中得到的坐標 C = double(sourceRegion); ? ? ? ? ?%待修復點為0,已存在點為1; D = repmat(-.1,sz); con=0;%填充次數(shù)初始化 %% 開始填充 tic %開始計時 ? ? %% 找到最優(yōu)匹配快 Hq為一9*9矩陣,矩陣值為最優(yōu)匹配塊的坐標 ? ? ? ?%找到最優(yōu)匹配快,Hq為一9*9矩陣,矩陣值為最優(yōu)匹配塊的坐標 ? ?Hq = bestexemplar(damageImage, damageImage(rows,cols),fillRegion); ? ?%Hq = bestexemplar1(damageImage, damageImage(rows,cols), toFill', sourceRegion); ? ?% Update fill region 更新破損區(qū)域 ? ?fillRegion(Hp(toFill)) = false; ? ? ? ? ? ? ? ?%Hp(toFill)表示只留下待修復點的坐標,使得待修復點的值為0 ? ?% Propagate confidence ? ? C(Hp(toFill)) ?= C(p); ? ? ? ? ? ? ? ? ? ? ? ? %被去掉那塊的修復塊的置信度被更新,C代表sourceRegion,待修復點為0,已存在點為1;用優(yōu)先權(quán)最大的修復點的置信度來代替優(yōu)先權(quán)最大的塊的置信度 ? ? ? ? % ? ? ?Gx(Hp(toFill)) = Gx(Hq(toFill)); ? ? ? ? ? ? ? %用最優(yōu)匹配塊的向量梯度來更新優(yōu)先權(quán)最大的塊的梯度 % ? ? Gy(Hp(toFill)) = Gy(Hq(toFill)); ? ? ? ? ? ?% Copy image data from Hq to Hp ? ?ind(Hp(toFill)) = ind(Hq(toFill)); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %最優(yōu)匹配塊的坐標來作為待修復塊的坐標 ? ?damageImage(rows,cols) = ind2img(ind(rows,cols),damageImage); %ind(rows,cols)表示待修復塊的坐標范圍,該范圍已被最優(yōu)匹配塊的值所替代 ? ?con=con+1; ? ? ? %% 保存圖像 ?imwrite(uint8(damageImage),strcat('indoor2_',num2str(con),'.jpg')) ? end toc count=con %填充次數(shù) OKImg= damageImage; figure imshow(OKImg, []) imwrite(uint8(OKImg),'ok.jpg')

?


【圖像修復】基于crimins算法解決圖像修復問題matlab源碼的評論 (共 條)

分享到微博請遵守國家法律
蓝田县| 高安市| 博客| 新绛县| 鄂尔多斯市| 大石桥市| 翁牛特旗| 涞水县| 普洱| 阳曲县| 延安市| 富源县| 重庆市| 抚州市| 景泰县| 德昌县| 舞阳县| 扶余县| 黄大仙区| 永川市| 聊城市| 新民市| 和静县| 黔江区| 榆中县| 微山县| 涞源县| 青冈县| 三台县| 敦化市| 伊宁市| 汤阴县| 玉树县| 正阳县| 桃园县| 神农架林区| 丰县| 溆浦县| 青河县| 普陀区| 罗山县|