Image 对于数组,我得到的值是0和255,而matlab的值是0和255之间的值?
我正在使用以下代码:Image 对于数组,我得到的值是0和255,而matlab的值是0和255之间的值?,image,matlab,image-processing,Image,Matlab,Image Processing,我正在使用以下代码: for m_cof=1:3 for n_cof=1:3 Fixed_term=(((2*(m_cof-1)+1)*(2*(n_cof-1)+1))/(g(1)*g(2))); c(m_cof,n_cof)=0; for u=1:g(1) y=((2*u)/g(1)); uof=Polynomial1(y,m_cof); for v=1:g(2)
for m_cof=1:3
for n_cof=1:3
Fixed_term=(((2*(m_cof-1)+1)*(2*(n_cof-1)+1))/(g(1)*g(2)));
c(m_cof,n_cof)=0;
for u=1:g(1)
y=((2*u)/g(1));
uof=Polynomial1(y,m_cof);
for v=1:g(2)
z=((2*v)/g(2));
vof=Polynomial1(z,n_cof);
f=f_template(u,v);
iop=(Fixed_term*f_template(u,v)*uof*vof)
c(m_cof,n_cof)=iop+c(m_cof,n_cof)
end
end
end
end`
其中
f_template
是RGB到灰度图像数组,但c
的内容仅为0和255,中间没有任何内容,请帮助?由于图像所属的数据类型,您似乎正在经历饱和。要克服此问题,请将图像转换为双倍,然后重试代码
简单地说,在嵌套循环之前的代码开头执行此操作:
f_template = double(f_template);
您的图像类型是否为uint8(无符号8位整数)?如果是,整数除法会将结果截断为最接近的整数,并在
0
和255
的最小/最大值处饱和。在进行任何计算之前,请尝试将Im=double(Im)转换为double
。