资源简介
两幅图像一种高分辨率全色,一种低分辨率多光谱,融合后成为高分辨率多光谱
代码片段和文件信息
#include “opencv.hpp“
#include
#include
#include
#include “math.h“
using namespace std;
using namespace cv;
extern “C“ __declspec(dllexport)void weighted_merge();
Mat _merge2(Mat high_picMat mul_picint heightint width)
{
Mat output(heightwidthCV_8UC3);
unsigned char * pBmp = output.data;
unsigned char * pmul = mul_pic.data;
unsigned char * ph = high_pic.data;
double P1P2P3S1S2S3;
P1=0;P2=0;P3=0;S1=0;S2=0;S3=0;
for (int i=0;i {
for (int j=0;j {
P1+=ph[(i*width+j)*3+0];
P2+=ph[(i*width+j)*3+1];
P3+=ph[(i*width+j)*3+2];
S1+=pmul[(i*width+j)*3+0]; //B
S2+=pmul[(i*width+j)*3+1]; //G
S3+=pmul[(i*width+j)*3+2]; //R
}
}
P1=P1/(height*width);
P2=P2/(height*width);
P3=P3/(height*width);
S1=S1/(height*width);
S2=S2/(height*width);
S3=S3/(height*width);
//计算σ12σ1σ2
double σ1_1=0;
double σ2_1=0;
double σ12_1=0;
double σ1_2=0;
double σ2_2=0;
double σ12_2=0;
double σ1_3=0;
double σ2_3=0;
double σ12_3=0;
for(int i=0;i {
for(int j=0;j {
σ1_1+=(ph[(i*width+j)*3+0]-P1)*(ph[(i*width+j)*3+0]-P1);
σ2_1+=(pmul[(i*width+j)*3+0]-S1)*(pmul[(i*width+j)*3+0]-S1);
σ12_1+=(ph[(i*width+j)*3+0]-P1)*(pmul[(i*width+j)*3+0]-S1);
σ1_2+=(ph[(i*width+j)*3+1]-P2)*(ph[(i*width+j)*3+1]-P2);
σ2_2+=(pmul[(i*width+j)*3+1]-S2)*(pmul[(i*width+j)*3+1]-S2);
σ12_2+=(ph[(i*width+j)*3+1]-P2)*(pmul[(i*width+j)*3+1]-S2);
σ1_3+=(ph[(i*width+j)*3+2]-P3)*(ph[(i*width+j)*3+2]-P3);
σ2_3+=(pmul[(i*width+j)*3+2]-S3)*(pmul[(i*width+j)*3+2]-S3);
σ12_3+=(ph[(i*width+j)*3+2]-P3)*(pmul[(i*width+j)*3+2]-S3);
}
}
σ1_1=sqrt(σ1_1);
σ2_1=sqrt(σ2_1);
σ1_2=sqrt(σ1_2);
σ2_2=sqrt(σ2_2);
σ1_3=sqrt(σ1_3);
σ2_3=sqrt(σ2_3);
//计算相关系数r
double r1r2r3;
r1=σ12_1/(σ1_1*σ2_1);
r2=σ12_2/(σ1_2*σ2_2);
r3=σ12_3/(σ1_3*σ2_3);
for (int i=0;i {
for (int j=0;j {
if (pmul[(i*width+j)*3+0]==0&&pmul[(i*width+j)*3+1]==0&&pmul[(i*width+j)*3+2]==0)
{
pBmp[(i*width+j)*3+0] =ph[(i*width+j)*3+0]; //B
pBmp[(i*width+j)*3+1] =ph[(i*width+j)*3+1]; //G
pBmp[(i*width+j)*3+2] =ph[(i*width+j)*3+2]; //R
}
else{
pBmp[(i*width+j)*3+0] =((1-r1)*pmul[(i*width+j)*3+0]+(1+r1)*ph[(i*width+j)*3+0])/2; //B
pBmp[(i*width+j)*3+1] =((1-r2)*pmul[(i*width+j)*3+1]+(1+r2)*ph[(i*width+j)*3+1])/2; //G
pBmp[(i*width+j)*3+2] =((1-r3)*pmul[(i*width+j)*3+2]+(1+r3)*ph[(i*width+j)*3+2])/2; //R
}
}
}
return output;
}
void weighted_merge()
{
Mat high_pic=imread(“sp_yc.bmp“1);
Mat mul_pic_1=imread(“tm1.bmp“0);
Mat mul_pic_3=imread(“tm3.bmp“0);
Mat mul_pic_4=imread(“tm4.bmp“0);
Mat mul_pic;
Mat channel[3];
channel[0]=mul_pic_1;
channel[1]=mul_pic_3;
channel[2]=mul_pic_4;
merge(channel3mul_pic);
//imshow(“1“mul_pic);
Mat dstImage_mul;
resize(mul_picdstImage_mulSize(mul_pic.cols*3mul_pic.r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-06-01 12:16 加权融合\Debug\
目录 0 2019-06-01 15:27 加权融合\ipch\
目录 0 2019-06-01 15:27 加权融合\ipch\加权融合-a24e0c65\
文件 69206016 2019-06-01 16:27 加权融合\ipch\加权融合-a24e0c65\加权融合-1532d6e2.ipch
目录 0 2019-06-01 12:16 加权融合\x64\
目录 0 2019-06-01 12:23 加权融合\x64\Debug\
文件 109568 2019-06-01 12:23 加权融合\x64\Debug\加权融合.dll
文件 707 2019-06-01 12:23 加权融合\x64\Debug\加权融合.exp
文件 583956 2019-06-01 12:23 加权融合\x64\Debug\加权融合.ilk
文件 1826 2019-06-01 12:23 加权融合\x64\Debug\加权融合.lib
文件 1838080 2019-06-01 12:23 加权融合\x64\Debug\加权融合.pdb
文件 16732160 2019-06-01 17:22 加权融合\加权融合.sdf
文件 1257 2019-06-01 12:16 加权融合\加权融合.sln
文件 15360 2019-06-01 17:22 加权融合\加权融合.suo
目录 0 2019-06-01 12:16 加权融合\加权融合\
目录 0 2019-06-01 12:16 加权融合\加权融合\Debug\
文件 654 2019-06-01 12:16 加权融合\加权融合\Debug\cl.command.1.tlog
文件 33370 2019-06-01 12:16 加权融合\加权融合\Debug\CL.read.1.tlog
文件 234 2019-06-01 12:16 加权融合\加权融合\Debug\CL.write.1.tlog
文件 2 2019-06-01 12:16 加权融合\加权融合\Debug\li
文件 2 2019-06-01 12:16 加权融合\加权融合\Debug\li
文件 2 2019-06-01 12:16 加权融合\加权融合\Debug\li
文件 434 2019-06-01 12:16 加权融合\加权融合\Debug\rc.command.1.tlog
文件 210 2019-06-01 12:16 加权融合\加权融合\Debug\rc.read.1.tlog
文件 218 2019-06-01 12:16 加权融合\加权融合\Debug\rc.write.1.tlog
文件 830464 2019-06-01 12:16 加权融合\加权融合\Debug\vc100.idb
文件 1380352 2019-06-01 12:16 加权融合\加权融合\Debug\vc100.pdb
文件 2 2019-06-01 12:16 加权融合\加权融合\Debug\加权融合.dll.em
文件 68 2019-06-01 12:16 加权融合\加权融合\Debug\加权融合.dll.em
文件 68 2019-06-01 12:16 加权融合\加权融合\Debug\加权融合.lastbuildstate
文件 3098 2019-06-01 12:16 加权融合\加权融合\Debug\加权融合.log
............此处省略39个文件信息
- 上一篇:非加权融合.zip
- 下一篇:地理信息系统实习教程第3版配套数据
评论
共有 条评论