多媒体技术与应用之图像修复实验
2019-05-28 17:11
99 查看
普通的图像修补代码:
clear all close all flag = 20;%设置模板大小为41*41 I=imread('color.bmp'); subplot(121);imshow(I);title('原始图像 ') ; [m,n,hh]=size(I); %长 宽 三层rgb A=rgb2gray(I);%彩色图转换灰度图 I1=I; [rowind,columnind]=find(A<4); pointnum=length(rowind);%受污染像素的个数 rowstart=rowind-flag; rowend=rowind+flag;%统计每个受污染像素修复模板的起止行 rowstart(rowstart<1)=1; rowend(rowend>m)=m;%起始行不能小于1,终止行不能大于m columnstart=columnind-flag; columnend=columnind+flag;%统计模板的起止列 columnstart(columnstart<1)=1; columnend(columnend>n)=n; for num=1:pointnum%对每个受污染的像素进行修复 x=rowind(num); y=columnind(num); xstart=rowstart(num); xend=rowend(num); x1=x-xstart+1;%得到基点的相对坐标 ystart=columnstart(num); yend=columnend(num); y1=y-ystart+1;%得到基点的相对坐标 depthpos=A(xstart:xend,ystart:yend)>10 ; %参与加权的像素与基准点相差大于10的深度图像素点且不能是受污染点 [locind1,locind2]=find(depthpos); W=(locind1-x1).^2+(locind2-y1).^2;% 权值为距离平方 的倒数 TT=1./W; T=sum(TT); Aloc=I(xstart:xend,ystart:yend,1);%对红色通道进行处理 Aloc=double(Aloc(depthpos)); R=Aloc.*TT; R=sum(R); I1(x,y,1)=R/T; Aloc=I(xstart:xend,ystart:yend,2);%对绿色通道进行处理 Aloc=double(Aloc(depthpos)); R=Aloc.*TT; R=sum(R); I1(x,y,2)=R/T; Aloc=I(xstart:xend,ystart:yend,3);%对蓝色通道进行处理 Aloc=double(Aloc(depthpos)); R=Aloc.*TT; R=sum(R); I1(x,y,3)=R/T; end subplot(122),imshow(I1),title(' 基于单幅图像修复 ')
相关文章推荐
- 多媒体技术与应用之图像修复Tv算法
- 多媒体技术与应用实验之Huffman编解码matlab实现
- 多媒体技术实验--BMP图像的直方图均衡化
- Mooc多媒体技术与应用03-数字图像技术
- 雷达与图像识别技术结合在道路驾驶辅助/自动驾驶上的应用探讨
- 图形与多媒体技术——图像渲染技术
- 【Android应用开发技术:图像处理】Bitmap显示性能优化分析
- 信息安全技术 实验三 数字证书应用
- 使用J2ME MMAPI开发移动多媒体应用技术
- c# 图形图像 多媒体技术
- 数据压缩原理与应用 图像文件的读写和转换(BMP2YUV)实验报告
- 深度|人脸图像的技术原理及在电商业务中的应用
- 数字图像处理技术在TWaver可视化中的应用
- 【Android应用开发技术:图像处理】章节列表
- 一起谈.NET技术,使用DeeepZoom Composer进行富图像应用的开发(翻译--1)
- 【技术外文翻译】解读Keras在ImageNet中的应用:详解5种主要的图像识别模型
- 多媒体图形图像技术
- 使用J2ME MMAPI开发移动多媒体应用技术
- opencv图像识别技术在自动化测试中的应用