• 大小: 16.79MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: 其他
  • 标签:

资源简介

基于单幅图像的快速去雾算法的源代码,可以直接运行的vs2010工程。去雾算法研究的同学可以看看。一种比较快速的图片去雾算法的工程实现。此算法耗时较小,去雾效果也不错。可以用于实时处理应用之中。

资源截图

代码片段和文件信息

/*
 * 作者:venjieliu
 * 时间:2017.5.12
 * 邮箱:venjieliu@gmail.com
 */

#include “stdafx.h“
#include “Fast_dehaze_cpu.h“
#include “dehaze_core.h“

Mat read_image(char *imgname)
{
Mat img = imread(imgname CV_LOAD_IMAGE_COLOR);
Mat outimg(img.rowsimg.colsCV_8UC3);
img.convertTo(outimg CV_8UC3);
return outimg;
}

int getM(Mat &M Mat &M_max const Mat &src double &m_av double &eps)
{
double sum = 0;
for (int i = 0; i < src.rows; i++) 
{
for (int j = 0; j < src.cols; j++) 
{
uchar r g b;
uchar temp1 temp2;
r = src.at(ij)[0];
g = src.at(ij)[1];
b = src.at(ij)[2];
temp1 = my_min(my_min(r g) b);
temp2 = my_max(my_max(r g) b);
M.at(i j) = temp1;
M_max.at(i j) = temp2;
sum += temp1;
}
}
m_av = sum / (src.rows * src.cols * 255);
eps = 0.85/(m_av);
return 0;
}

int getAveM(Mat &M_ave Mat &M int r)
{
boxFilter(M M_ave CV_8UC1 Size(r r));

return 0;
}

int getL(Mat &L Mat &M Mat &M_ave double eps double m_av)
{
double delta = my_min(0.9 eps*m_av);
for (int i = 0; i < M.rows; i++) 
{
for (int j = 0; j < M.cols; j++) 
{
L.at(i j) = (int)my_min(delta * M_ave.at(i j) M.at(i j));
}
}

return 0;
}

int MaxMatrix(Mat &src)
{
int temp = 0;
for (int i = 0; i < src.rows; i++)
{
for (int j = 0; j < src.cols; j++)
temp = my_max(src.at(i j) temp);
if (temp == 255)
return temp;
}
return temp;
}

double GetA(Mat &M_max Mat &M_ave)
{
return (MaxMatrix(M_max) + MaxMatrix(M_ave)) * 0.5;
}

int dehaze(Mat &dst const Mat &src Mat &L double A)
{
int temp value;
for (int i = 0; i < src.rows; i++)
{
for (int j = 0; j < src.cols; j++)
{
temp = L.at(i j);
for (int k = 0; k < 3; k++)
{
value = A*(src.at(ij)[k] - temp)/ (A-temp);
if (value > 255) value = 255;
if (value < 0) value = 0;
dst.at(ij)[k] = value;
}
}
}
return 0;
}

Mat autocontrost(Mat &matface int cut_limit)
{

double HistRed[256]={0};
double HistGreen[256]={0};
double HistBlue[256]={0};
int bluemap[256]={0};
int redmap[256]={0};
int greenmap[256]={0};


for (int i=0;i {
for (int j=0;j {
int iblue =matface.at(ij)[0];
int igreen=matface.at(ij)[1];
int ired  =matface.at(ij)[2];
HistBlue[iblue]++;
HistGreen[igreen]++;
HistRed[ired]++;
}
}
int PixelAmount = matface.rows*matface.cols;
int isum = 0;
// blue
int iminblue=0;int imaxblue=0;
for (int y = 0;y<256;y++)//这两个操作我基本能够了解了
{
isum= isum+HistBlue[y];
if (isum>=PixelAmount*cut_limit*0.01)
{
iminblue = y;
break;
}
}
isum = 0;
for (int y=255;y>=0;y--)
{
isum=isum+HistBlue[y];
if (isum>=PixelAmount*cut_limit*0.01)
{
imaxblue=y;
break;
}
}
//red
isum=0;
int iminred=0;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-08-09 11:21  Fast_dehaze_cpu_win7\
     目录           0  2017-04-11 17:16  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\
     文件         774  2017-08-03 16:14  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Fast_dehaze_cpu.cpp
     文件         477  2017-08-03 16:14  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Fast_dehaze_cpu.h
     文件        8770  2016-01-01 19:17  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Fast_dehaze_cpu.vcxproj
     文件        1604  2015-12-23 15:03  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Fast_dehaze_cpu.vcxproj.filters
     文件         620  2017-06-01 15:35  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Fast_dehaze_cpu.vcxproj.user
     文件        1609  2015-12-23 15:01  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\ReadMe.txt
     目录           0  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\
     文件      120794  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\CL.read.1.tlog
     文件        6756  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\CL.write.1.tlog
     文件          94  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.lastbuildstate
     文件        2037  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.log
     文件     1091732  2017-08-03 18:32  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.obj
     文件     1179648  2017-08-03 18:32  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.pch
     文件         713  2017-03-26 12:20  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.vcxprojResolveAssemblyReference.cache
     文件           0  2017-03-26 11:48  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\Fast_dehaze_cpu.write.1.tlog
     文件        8240  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\cl.command.1.tlog
     文件     1122067  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\dehaze_core.obj
     文件        5894  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\link.command.1.tlog
     文件       12596  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\link.read.1.tlog
     文件        2626  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\link.write.1.tlog
     文件       30634  2017-08-03 18:32  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\stdafx.obj
     文件      880640  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\Release\vc100.pdb
     文件        6152  2017-08-09 11:19  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\dehaze_core.cpp
     文件         525  2017-08-03 16:13  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\dehaze_core.h
     文件      425334  2017-08-09 11:21  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\dehazing_cpu.png
     目录           0  2017-05-24 16:17  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\images\
     文件      119907  2015-12-02 11:10  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\images\1.jpg
     文件     1096856  2013-06-27 11:03  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\images\10.bmp
     文件     1034456  2013-06-27 11:03  Fast_dehaze_cpu_win7\Fast_dehaze_cpu\images\11.bmp
............此处省略213个文件信息

评论

共有 条评论