概述
计算权重,保存到txt中。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <fstream>
#include <iostream>
double getWeight(int form, int i, int j, int width, int height){
double a;
//====== format0: Equirectangular =======
if (form == 0) {
a = cos((j - (height / 2 - 0.5))*3.1415926 / height);
return a;
}
else if (form == 5) {
int ci, cj, r2;
double d2;
if (i < width / 4 && j < height / 3) {
ci = width / 8;
cj = height / 6;
}
else if (i < width / 4 && j >= height / 3 && j < 2 * height / 3) {
ci = width / 8;
cj = height / 2;
}
else if (i < width / 4 && j >= 2 * height / 3) {
ci = width / 8;
cj = 5 * height / 6;
}
else if (i >= width / 4 && i < width / 2 && j >= height / 3 && j < 2 * height / 3) {
ci = 3 * width / 8;
cj = height / 2;
}
else if (i >= width / 2 && i < 3 * width / 4 && j >= height / 3 && j < 2 * height / 3) {
ci = 5 * width / 8;
cj = height / 2;
}
else if (i > 3 * width / 4 && j >= height / 3 && j < 2 * height / 3) {
ci = 7 * width / 8;
cj = height / 2;
}
else {
return 0;
}
d2 = (i + 0.5 - ci)*(i + 0.5 - ci) + (j + 0.5 - cj)*(j + 0.5 - cj);
r2 = (width / 8)*(width / 8);
a = 1.0 / ((1 + d2 / r2)*sqrt(1.0*(1 + d2 / r2)));
return a;
}
}
using namespace std;
int main(){
double latWeight = 0;
int height = 3072;
int width = 4096;
int form = 5;
ofstream fout("data_cmpT.txt");
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {
latWeight = getWeight(form, i, j, width, height);
fout << latWeight << ' ';
}
fout << 'tn' << endl;
}
fout.close();
return 0;
};
最后
以上就是真实保温杯为你收集整理的WS-PSNR不同投影格式的权重计算(ERP CMP)的全部内容,希望文章能够帮你解决WS-PSNR不同投影格式的权重计算(ERP CMP)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复