作者show109 (yu)
看板MATLAB
标题[问题]影像BTC压缩问题
时间Wed Aug 22 13:13:58 2012
把一张图片切成不重叠的区块去做运算
我现在求出每个区块的平均值了
现在 我要用每个区块平均值 去做判断原本的像素
如果每个区块像素>=每个区块平均值
就把它全部加给来 除以 总共>=每个区块的平均值 得到(XH)
反之 如果每个区块像素<每个区块平均值
就把它全部加给来 除以 总共<每个区块的平均值 得到(XL)
现在卡在这里 只算的出平均值 无法计算出 XH和XL
--------------------------------------------------------
附上程式码:
clc;
clear all;
[fname,fpath]=uigetfile('*.bmp','选择图片');
image=imread(fname);
[x,y] = size(image);
array1= double(zeros(x,y));
pixel = double(zeros(x,y));
array2 = double(zeros(x,y));
array3 = double(zeros(x,y));
H=0;
XH=0;
m_XH=0;
L=0;
XL=0;
m_XL=0;
k = 0;
for i = 1:2:511
for j = 1:2:511
for s = i : i+1
for t = j : j+1
k = k + 1;
array4(k) = image(s,t);
end
end
k = 0 ;
total(i,j) = sum(array4);
array3(i,j) = double(total(i,j)/4);
%///////////////////每个区块计算XL,XH//////////////////////
% for s = i : i+1
% for t = j : j+1
if ( image(i,j)>=array3(i,j))
H=H+1;
XH=XH+ image(i,j);
m_XH=(XH/H);
else
L=L+1;
XL=XL+ image(i,j);
m_XL=(XL/L);
end
% end
%end
imshow(array3);
感谢帮忙!!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.130.34.177