目前是对一个CU求二维熵以判断是否进行划分,二维熵这么定义的,假设在某个点,其位置为[m][n],他的像素值为i,则对其求周围的像素均值j,然后count[i][j]++,计数器增加一,最后求到每个count的概率p,并求plogp的和的负数即为二维熵,但是便利256*256的数组的时间代价太大(i,j的像素值在0~256),尝试用其他方式来索引count[i][j]。
首先尝试map<vector<int>, int> Arr,map数据结构
#include<iostream>
#include<string>
#include<vector>
#include<map>
using namespace std;
int main()
{
map<vector<int>, int> Arr;
map<vector<int>, int>::iterator iter;
vector<int> a, b, c;
int i,j;
a.push_back(1);
b.push_back(2);
c.push_back(3);
mm.insert(map<vector<int>, vector<int>>::value_type(a, b));
for(iter = Arr.begin();iter!=Arr.end)
{
cout<<iter->first<<endl; //有问题
}
return 0;
}