| 查看: 2299 | 回复: 4 | |||
[求助]
怎么用栅格计算器计算熵 已有1人参与
|
|
希望能把输入栅格计算器的具体的公式写出来 @十八學士 发自小木虫IOS客户端 |
» 猜你喜欢
326调剂帖
已经有1人回复
青C最后一年,散金祈福吧
已经有48人回复
地球化学论文润色/翻译怎么收费?
已经有287人回复
无法从这份源码判断项目是否“获资助批准”
已经有11人回复
没中,有点难受,科研也许就到这了,回归生活吧
已经有15人回复
lqyygy
木虫 (著名写手)
- 应助: 28 (小学生)
- 金币: 1733.2
- 散金: 1147
- 红花: 14
- 帖子: 1300
- 在线: 425.3小时
- 虫号: 1627634
- 注册: 2012-02-19
- 性别: GG
- 专业: 地理信息系统
【答案】应助回帖
感谢参与,应助指数 +1
|
栅格计算器擅长单元计算做这种全局计算可能会比较麻烦。下面是matlab的实现方法,转自百度文库 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 计算遥感图像的各个波段的信息熵 %%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% function outval = entropy(img)A=imread(img); [M,N,b]=size(A);A = double(A);% 生成值为零的初始化数组。其用来统计和存储对应于每个 % 灰度级的频数(概率) ,数组的大小根据图像的大小而定 Result=zeros(1,b); %figure,imshow(A);for k = 1 : bband = A(:,:,k);temp=zeros(M,N); % 对图像的灰度值做统计,计算每个灰度级出现的次数 for m=1:M; for n=1:N; if band(m,n)==0;i=1; elsei=band(m,n); end temp(i)=temp(i)+1; end end temp=temp./(M*N);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 由熵的定义做计算信息熵 %%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:length(temp) if temp(i)==0; Result(k)=Result(k); else Result(k)=Result(k)-temp(i)*log2(temp(i)); end endendoutval = Result; 另外matlab里还有直接进行计算的函数entropy,是将所有波段做为一幅图计算,如果图像只有一个波段,计算结果跟上述算法结果一样。 I = imread("d:\data.tif" ;J = entropy(I); |
2楼2017-05-12 09:42:28
lqyygy
木虫 (著名写手)
- 应助: 28 (小学生)
- 金币: 1733.2
- 散金: 1147
- 红花: 14
- 帖子: 1300
- 在线: 425.3小时
- 虫号: 1627634
- 注册: 2012-02-19
- 性别: GG
- 专业: 地理信息系统
|
贴过来格式有点乱,重新整理一下,原贴见https://wenku.baidu.com/view/dc5c5cb9168884868662d603.html %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%计算遥感图像的各个波段的信息熵 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function outval = entropy(img) A=imread(img); [M,N,b]=size(A); A = double(A); %生成值为零的初始化数组。其用来统计和存储对应于每个 %灰度级的频数(概率),数组的大小根据图像的大小而定 Result=zeros(1,b); %figure,imshow(A); for k = 1 : b band = A(:,:,k); temp=zeros(M,N); %对图像的灰度值做统计,计算每个灰度级出现的次数 for m=1:M; for n=1:N; if band(m,n)==0; i=1; else i=band(m,n); end temp(i)=temp(i)+1; end end temp=temp./(M*N); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%由熵的定义做计算信息熵 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:length(temp) if temp(i)==0; Result(k)=Result(k); else Result(k)=Result(k)-temp(i)*log2(temp(i)); end end outval = Result; |
» 本帖已获得的红花(最新10朵)
3楼2017-05-12 09:50:02
4楼2017-05-12 22:32:34
lqyygy
木虫 (著名写手)
- 应助: 28 (小学生)
- 金币: 1733.2
- 散金: 1147
- 红花: 14
- 帖子: 1300
- 在线: 425.3小时
- 虫号: 1627634
- 注册: 2012-02-19
- 性别: GG
- 专业: 地理信息系统
5楼2017-05-14 11:51:00












回复此楼
;
左慕青