我想在图像上使用离散小波变换(256 * 256),使用“Haar”小波将其分解为第一级。我的目标是使用分解的小波系数(近似,水平,垂直,对角线)来计算小波共现特征(主要是对比度特征)。我使用MATLAB dwt2函数完成了这项工作。但我想用R开源软件做到这一点。不幸的是,R小波包和图像处理包比matlab复杂(无法清楚地识别功能)。我想知道R中的图像处理和小波操作如何清楚。
这是我工作的MATLAB代码。
% read the input image
im_in = imread('D:\result\s.jpg');
%convert the input image to suitable format
im_in=imconvert(im_in);
%im2double rescale pixel values to [0 1]
imgray_in = im2double(im_in);
Apply discrete wavelet transformation using haar wavelet level 1 decomposition
[cA cH cV cD]=dwt2(imgray_in,'haar');
Use wavelet coefficients to calculate contrast feature of image
C_LL=w_c(cA);
C_HL=w_c(cH);
C_LH=w_c(cV);
C_HH=w_c(cD);
对比度功能
% Calculate the wavelet Contrast feature values
function y=w_c(cC)
s = size(cC);
[c,r] = meshgrid(1:s(1),1:s(2));
r = r(:);
c = c(:);
y= sum(((r-c).^2).*cC(:));