• 大小: 20.3MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签:

资源简介

两幅图像一种高分辨率全色,一种低分辨率多光谱,融合后成为高分辨率多光谱

资源截图

代码片段和文件信息

#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\link.command.1.tlog
     文件           2  2019-06-01 12:16  加权融合\加权融合\Debug\link.read.1.tlog
     文件           2  2019-06-01 12:16  加权融合\加权融合\Debug\link.write.1.tlog
     文件         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.embed.manifest
     文件          68  2019-06-01 12:16  加权融合\加权融合\Debug\加权融合.dll.embed.manifest.res
     文件          68  2019-06-01 12:16  加权融合\加权融合\Debug\加权融合.lastbuildstate
     文件        3098  2019-06-01 12:16  加权融合\加权融合\Debug\加权融合.log
............此处省略39个文件信息

评论

共有 条评论

相关资源