前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB批量给数据集加雾

MATLAB批量给数据集加雾

作者头像
狼啸风云
修改2022-09-02 21:10:11
1.1K0
修改2022-09-02 21:10:11
举报
文章被收录于专栏:计算机视觉理论及其实现
代码语言:javascript
复制
%img_name='P0002.png';

%I=imread(img_name);
% subplot(2,2,1);
%td = add_fog(I);

%imshow(td);

file_path =  'D:\paper\4dehaze_remotesensing\dataset\DOTA\train\images\';      % 图像文件夹路径  
out_path =  'D:\paper\4dehaze_remotesensing\dataset\DOTA\train\images_foggy\';% 图像文件夹路径  
img_path_list = dir(strcat(file_path, '*.png'));%获取该文件夹中所有bmp格式的图像  
img_num = length(img_path_list);%获取图像总数量 
I=cell(1,img_num);



if img_num > 0 %有满足条件的图像  
        for j = 1 : img_num %逐一读取图像  
            image_name = img_path_list(j).name;% 图像名  
            image =  imread(strcat(file_path,image_name));  
            %I{j}=image;
            Iw = add_fog(image);
            fprintf('%d %d %s\n',i ,j,strcat(file_path,image_name));% 显示正在处理的图像名  
            imwrite(Iw, strcat(out_path,image_name))
            %图像处理过程 省略  

            %这里直接可以访问细胞元数据的方式访问数据
        end  
end   



function [Iw] = add_fog( I ) 
I1 = imresize(I,[512,512]);
I1=double(I1)/255;
I = I1;
% figure;imagesc(I); %一图
Im_dealt = I;
[row,col,z] = size(Im_dealt);
landline = 0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Iw = I;
A = 0.8;
m = 100;
n = 300;
tidx= 2;
for beta = 0.05:0.05:0.15
%for beta = 0.20:0.05:0.30
for i=1:3
for j=landline+1:row
for l=1:col
d(j,l) = 1/((j-landline)^.05 + 0.0001);
d2(j,l) = d(j,l)*8;
if j < landline
d(j,l) = -0.04*landline + 18;
td(j,l) = exp(-beta*d(j,l));
Iw(j,l,i) = I(landline,l,i)*td(landline,l) + A*(1-td(j,l));
else
d(j,l) = -0.04*sqrt((j-m).^2+(l-n).^2) + 17;
td(j,l) = exp(-beta*d(j,l));
Iw(j,l,i) = I(j,l,i)*td(j,l) + A*(1-td(j,l));
end
end
end
end
for k = 1:landline
for kj = 1:col
Iw(k,kj,: ) = Iw(landline+1,100,:);
end
end
%figure(tidx);
imshow(Iw);
filename = ['.\outPicture\frame179-',num2str(tidx),'.tif'];
%imwrite(Iw,filename);
%subplot(2,2,tidx); imshow(Iw);
%a = sprintf('%s %f','beta=',beta);
%title(a);
tidx = tidx+1;
end
end


% figure; imshow(d);
%figure; imshow(td);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档