当前位置:网站首页>[image denoising] image denoising based on trilateral filter with matlab code
[image denoising] image denoising based on trilateral filter with matlab code
2022-06-12 21:58:00 【Matlab scientific research studio】
1 brief introduction
In recent years , With the development of computer vision , The problem of fog image clarity has gradually become a research hotspot in this field . At present, the research on image defogging technology can be divided into two categories [1]: Image defogging method based on atmospheric scattering physical model and image enhancement method . The image defogging method based on the physical model of atmospheric scattering is analyzed from the perspective of the specific causes of image degradation , The effect of atmospheric scattering on the imaging process is mainly considered , The mathematical model of fog image degradation process is established
model , Solve the model parameters , The original real image is restored through the inverse process of image degradation . The defogging method based on image enhancement does not consider the cause of image degradation , But selectively highlight the features of interest in the image sign , Weaken unwanted features . Generally, image defogging is achieved by enhancing the contrast of the image and correcting the color of the image , Thus, the processed image is more suitable for human visual characteristics or computer recognition system . The defogging method based on image enhancement is simple 、 Effective and widely used .



2 Part of the code
clear all;clc;warning off; close all;foldnumber = 2;linenumber = 150;string = strcat('C:\Users\hehesjtu\Desktop\test\',num2str(foldnumber),'\');Files = dir(strcat(string,'*.bmp'));LengthFiles = length(Files);t = [1:256];for i = 1:LengthFilesstring_GT = Files(i).name(end-5:end-4);if (strcmp(string_GT,'GT'))ygt = getline(imread(strcat(string,Files(i).name)),linenumber);name = strcat(Files(i).name(1:end-6));break;endendpicture = imread(strcat(string,name,'noisy.bmp'));block = ones(5,256,3);block(:,:,1)= block(:,:,1)*255;block(:,:,2) = 0; block(:,:,3) = 0;picture(linenumber-2:linenumber+2,:,:) = block;ynoisy = getline(imread(strcat(string,name,'noisy.bmp')),linenumber);yNLM = getline(imread(strcat(string,name,'NLM.bmp')),linenumber);yBM3D = getline(imread(strcat(string,name,'BM3D.bmp')),linenumber);yDDID = getline(imread(strcat(string,name,'DDID.bmp')),linenumber);yEPLL = getline(imread(strcat(string,name,'EPLL.bmp')),linenumber);yPGPD = getline(imread(strcat(string,name,'PGPD.bmp')),linenumber);yWNNM = getline(imread(strcat(string,name,'WNNM.bmp')),linenumber);yMCWNNM = getline(imread(strcat(string,name,'MCWNNM.bmp')),linenumber);yDnCNN = getline(imread(strcat(string,name,'DnCNN.bmp')),linenumber);yFFDNet = getline(imread(strcat(string,name,'FFDNet.bmp')),linenumber);yOur = getline(imread(strcat(string,name,'Our.bmp')),linenumber);subplot(3,4,1)imshow(picture);subplot(3,4,2)plot(t,ygt,'k','linewidth',2);hold on;plot(t,ynoisy,'r','linewidth',1.5);axis([1 256 50 150]);legend('y_{gt}','y');subplot(3,4,3)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yNLM,'g','linewidth',1.5);axis([1 256 50 150]);legend('y_{gt}','NLM');subplot(3,4,4)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yBM3D,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','BM3D');subplot(3,4,5)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yDDID,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','DDID');subplot(3,4,6)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yEPLL,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','EPLL');subplot(3,4,7)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yPGPD,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','PGPD');subplot(3,4,8)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yWNNM,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','WNNM');subplot(3,4,9)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yMCWNNM,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','MCWNNM');subplot(3,4,10)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yDnCNN,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','DnCNN');subplot(3,4,11)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yFFDNet,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','FFDNet');subplot(3,4,12)plot(t,ygt,'k','linewidth',2);hold on;plot(t,yOur,'g','linewidth',1.5);axis([1 256 80 150]);legend('y_{gt}','Ours');
3 Simulation results


4 reference
[1] Wu Lili . Ultrasonic image denoising algorithm based on Adaptive Wavelet and trilateral filtering [D]. Zhejiang University of technology , 2016.
About bloggers : Good at intelligent optimization algorithms 、 Neural networks predict 、 signal processing 、 Cellular automata 、 The image processing 、 Path planning 、 UAV and other fields Matlab Simulation , relevant matlab Code problems can be exchanged by private letter .
Some theories cite network literature , If there is infringement, contact the blogger to delete .
边栏推荐
- 复杂系统如何检测异常?北卡UNCC等最新《复杂分布式系统中基于图的深度学习异常检测方法综述》,阐述最新图异常检测技术进展
- June training (day 10) - bit operation
- Data batch writing
- DRF receives nested data and creates objects. Solution: DRF not NULL constraint failed
- jsonUtils
- The kotlin coroutine -- coroutine context and exception propagation
- [Jianzhi offer] Jianzhi offer 05 Replace spaces
- 脱颖而出!OceanBase 入选 2021“科创中国”开源创新榜单
- Interpretation of OCP function of oceanbase Community Edition
- What are thread scheduler and timeslicing?
猜你喜欢

Ansible playbook和变量(二)

Compiling process of OpenSSL and libevent on PC

SQL tuning guide notes 14:managing extended statistics

SQL tuning guide notes 17:importing and exporting optimizer statistics

KDD2022 | GraphMAE:自监督掩码图自编码器

Icml2022 | Galaxy: apprentissage actif des cartes de polarisation

Npoi create word

Smart management of green agriculture: a visual platform for agricultural product scheduling

如何自己动手写一个vscode插件,实现插件自由!

MySQL介绍和安装(一)
随机推荐
图灵奖得主:想要在学术生涯中获得成功,需要注意哪些问题?
How to prevent phishing emails? S/mime certificate to help!
February 27th
Gzip compression decompression
How to ensure thread safety?
Use group_ Dplyr issues when using group_ by(multiple variables)
SQL调优指南笔记13:Gathering Optimizer Statistics
[Jianzhi offer] Jianzhi offer 09 Implementing queues with two stacks
【QNX Hypervisor 2.2 用戶手册】4.2 支持的構建環境
Leetcode: the maximum number of building change requests that can be reached (if you see the amount of data, you should be mindless)
【图像去噪】基于三边滤波器实现图像去噪附matlab代码
MySQL体系结构及基础管理(二)
Kotlin collaboration process - flow
Vagrantbox reinstalling the vboxsf driver
【QNX Hypervisor 2.2 用户手册】4.2 支持的构建环境
Can tonghuashun open an account? Is it safe to open an account in tonghuashun? How to open a securities account
SQL tuning guide notes 14:managing extended statistics
What is the difference between a user thread and a daemon thread?
Producer consumer model under multithreading model
Ansible-大总结(六)