while running the following code i got an error as Subscript indices must either be real positive integers or logicals.
2 次查看(过去 30 天)
显示 更早的评论
clc; clear; close all; imtool close all; workspace; fontSize = 16; grayImage = imread('C:\Users\user\Documents\MATLAB\f13.jpg'); % subplot(2, 3, 1); imshow(grayImage, []); comp_image = imnoise(uint8(grayImage),'gaussian',0,.1); %Compression using wavelet imshow(comp_image); % load mask; [cr,bpp] = wcompress('c',grayImage,'mask.wtc','spiht','maxloop',12) Xc = wcompress('u','mask.wtc'); delete('mask.wtc') D = abs(grayImage-Xc).^2; mse = sum(D(:))/numel(grayImage) psnr = 10*log10(255*255/mse) % Display the original and the compressed image colormap(pink(255)) subplot(1,2,1); image(grayImage); title('Original image'); axis square subplot(1,2,2); image(Xc); title('Compressed image'); axis square
1 个评论
NANDITA SHARMA
2020-11-20
Use imresize to make your input image as a square matrix. Then run the code. I hope the code will run successfully now. The 'spiht' works on square marix, may be for that reason you are getting the error.
回答(2 个)
David Sanchez
2013-6-3
Try with a different compression method. You could avoid your error message using 'ezw' instead of 'spiht'. Give them a try.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Denoising and Compression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!