使用MATLAB对RGB皮肤损伤图像应用Berkeley小波变换

ozxc1zmp  于 2022-12-29  发布在  Matlab
关注(0)|答案(1)|浏览(173)

我第一次尝试使用MATLAB对皮肤病变图像进行图像小波变换,以便训练分割模型,偶然发现了这个库https://www.mathworks.com/matlabcentral/fileexchange/19860-berkeley-wavelet-transform
我试着用在我的数据集上

myFolder = 'D:\Data\dataset256p\image\imgs';
if ~isfolder(myFolder)
    errorMessage = sprintf('Error: folder does not exist.');
end

filePattern = fullfile(myFolder, '*.jpg'); 
theFiles = dir(filePattern);
numberofImages = length(theFiles);

for k = 1 : numberofImages
    baseFileName = theFiles(k).name;
    fullFileName = fullfile(theFiles(k).folder, baseFileName);
    imageArray = imread(fullFileName);
    image = rgb2gray(imageArray);
    im = double(image);
    im = mean(im,3);
    sz = min(size(im));
    im = im(1:sz,1:sz);
    newsz = 3^floor(log(sz)/log(3));
    im = imresize(im,newsz/sz);
    Output=bwt(im);
    imwrite(imageArray,sprintf('%s_Original.jpg',baseFileName));
    imwrite(Output,sprintf('%s_BWT.jpg',baseFileName));
    break;
end

但是我没有得到预期的结果,我不知道下一步该怎么办
这是我拍到的照片Original
Applying the above process
以下是BWT的参考文件:The Berkeley Wavelet Transform: A Biologically Inspired Orthogonal Wavelet Transform
这是我希望得到的结果applying the 8 mother wavelets on the dermoscopic images to form the berkeley wavelet decomposed image
先谢谢你。

fafcakar

fafcakar1#

您所附加的结果是BWT分解。您可以使用它进行处理,这取决于您想要做什么。如果您想要恢复完整的图像,则必须调用重建函数:

disp('Performing BWT decomposition...');
imbwt = bwt(im);
disp('Reconstructing from BWT coefficients...');
imr = ibwt(imbwt);

但是如果在分解时直接调用它而不进行处理,则会获得与输入图像类似的结果。

相关问题