资源简介
暗通道先验法去霾图像处理源程序,是vs2015配置opencv3.2,有需要的朋友可以下载。
代码片段和文件信息
#include “stdafx.h“
#include
#include
using namespace cv;
using namespace std;
int main()
{
/*第一部分,对三通道像素值计算最小值*/
Mat inputimage = imread(“天安门.jpg“);
Mat outputimage1;
Mat outputimage2;
if (!inputimage.data) { printf(“读取图像错误\n“); return false; }
outputimage1 = inputimage.clone();
cv::cvtColor(inputimage outputimage2 CV_BGR2GRAY);//转灰度图像,单通道
//output3 = outputimage2.clone();
int rownumber1 = outputimage1.rows;//行数
int colnumber1 = outputimage1.cols;//列数
for (int i = 0; i < rownumber1; i++)
{
for (int j = 0; j < colnumber1; j++)
{
if (outputimage1.at(i j)[0] > outputimage1.at(i j)[1])
if (outputimage1.at(i j)[1] > outputimage1.at(i j)[2])
outputimage2.at(i j) = outputimage1.at(i j)[2];
else
outputimage2.at(i j) = outputimage1.at(i j)[1];
else
if (outputimage1.at(i j)[0] > outputimage1.at(i j)[2])
outputimage2.at(i j) = outputimage1.at(i j)[2];
else
outputimage2.at(i j) = outputimage1.at(i j)[0];
}
}
//namedWindow(“三个像素中最小值输出灰度图像“);
//imshow(“三个像素中最小值输出灰度图像“ outputimage2);
//imshow(“直接输出的灰度图“ output3);
/************************************************/
//最小值滤波处理
/************************************************/
Mat outputimage3 outputimage4;
outputimage4 = outputimage2.clone();
//outputimage21=outputimage2.clone();
//cv::cvtColor(outputimage1 outputimage21 CV_BGR2GRAY);//转灰度图像,单通道
copyMakeBorder(outputimage2 outputimage3 7 7 7 7 BORDER_REPLICATE);
for (int i = 7; i < rownumber1 + 7; i++)
{
for (int j = 7; j < colnumber1 + 7; j++)//对于每个像素进行处理下面有15*15的最小值滤波处理
{
int grayMin = 255;//设置最小灰度值255
for (int a = i - 7; a < i + 8; a++)
for (int b = j - 7; b < j + 8; b++)//15*15的最小值滤波
if (grayMin > outputimage3.at(a b))
grayMin = outputimage3.at(a b);
outputimage4.at(i - 7 j - 7) = grayMin;
}
}
//imshow(“暗通道图像“ outputimage4);
/*第二部分,求出暗通道图像中亮度最大的像素值作为大气光强度*/
/********************************************/
/**************求通道像素最大值******************/
/********************************************/
double maxVal[4] = { 0000 }; //最大值一定要赋初值,否则运行时会报错
Point maxLoc;
minMaxLoc(outputimage4 NULL &maxVal[0] NULL &maxLoc);
cout << “大气平均强度: “ << maxVal[0] << endl;
/*************************************/
/*************************************/
/*第三部分*/
/*对三个通道进行最小值滤波*/
Mat outputimage1A;
Mat outputimage1B;
Mat outputimage1C;
//cv::cvtColor(outputimage1 output1A CV_BGR2GRAY);
//output1A = outputimage2.clone();
//output1B = output1A.clone();
//output1C = output1A.clone();
vector channels;//把一个3通道图像转换成3个单通道图像
split(outputimage1 channels);//分离彩色通道
outputimage1A = channels.at(0);
outputimage1B = channels.at(1);
outputimage1C = ch
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3407872 2018-03-05 20:07 ipch\IMAGE-4a6c423b\IMAGE-379f936d.ipch
文件 3407872 2018-03-05 16:30 ipch\IMAGE-994847f\IMAGE-379f936d.ipch
文件 3407872 2017-06-17 22:39 ipch\IMAGE-9e9418fa\IMAGE-17ea7c27.ipch
文件 3407872 2017-12-26 18:47 ipch\IMAGE-9e9418fa\IMAGE-379f936d.ipch
文件 3407872 2017-06-17 22:00 ipch\IMAGE-b47bb111\IMAGE-17ea7c27.ipch
文件 3407872 2017-05-30 22:49 ipch\IMAGE-d5a3335c\IMAGE-17ea7c27.ipch
文件 3407872 2017-05-30 22:42 ipch\IMAGE-d5a3335c\IMAGE-379f936d.ipch
文件 3407872 2017-05-30 22:35 ipch\IMAGE-d5a3335c\IMAGE-fc85b50f.ipch
文件 3407872 2018-02-05 22:02 ipch\IMAGE-f1e51424\IMAGE-379f936d.ipch
文件 186880 2018-02-05 22:10 x64\Debug\Image.exe
文件 862608 2018-02-05 22:10 x64\Debug\Image.ilk
文件 3108864 2018-02-05 22:10 x64\Debug\Image.pdb
文件 58880 2017-06-17 22:23 x64\Release\Image.exe
文件 758437 2017-06-17 22:23 x64\Release\Image.iobj
文件 238992 2017-06-17 22:23 x64\Release\Image.ipdb
文件 2371584 2017-06-17 22:23 x64\Release\Image.pdb
文件 2581 2018-02-05 20:23 .gitattributes
文件 3997 2018-02-05 20:23 .gitignore
文件 1297 2017-05-30 22:35 Image.sln
文件 30117888 2018-03-05 20:07 Image.VC.db
文件 14949 2017-06-04 17:10 最终(加天空).txt
..A..H. 45568 2018-03-05 20:07 .vs\Image\v14\.suo
文件 14977 2018-02-05 22:10 Image\Image.cpp
文件 8080 2017-05-30 22:49 Image\Image.vcxproj
文件 1312 2017-05-30 22:35 Image\Image.vcxproj.filters
文件 1496 2017-05-30 22:35 Image\ReadMe.txt
文件 209 2017-05-30 22:35 Image\stdafx.cpp
文件 234 2017-05-30 22:35 Image\stdafx.h
文件 240 2017-05-30 22:35 Image\targetver.h
文件 2980 2018-02-05 22:10 Image\x64\Debug\Image.log
............此处省略48个文件信息
评论
共有 条评论