i am working on Image Compression Using Run Length Encoding
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
am getting error in scanning in zigzag the error is as follows
Undefined function or variable 'toZigzag'.
Error in rlc_haar (line 21)
ImageArray=toZigzag(QuantizedImage);
plese help me
%%Matlab code for Image Compression Using Run Length Encoding
      clc;
      clear;
      close all;
      %%Set Quantization Parameter
      quantizedvalue=10;
      %%Read Input Image
      InputImage=imread('cameraman.tif');
      [row col p]=size(InputImage);
      %%Wavelet Decomposition 
      [LL LH HL HH]=dwt2(InputImage,'haar'); 
      WaveletDecomposeImage=[LL,LH;HL,HH]; 
      imshow(WaveletDecomposeImage,[]);
      %uniform quantization
      QuantizedImage= WaveletDecomposeImage/quantizedvalue;
      QuantizedImage= round(QuantizedImage);
      % Convert the Two dimensional Image to a one dimensional Array using ZigZag Scanning
      ImageArray=toZigzag(QuantizedImage);
      %%Run Length Encoding
      j=1;
      a=length(ImageArray);
      count=0;
      for n=1:a
       b=ImageArray(n);
       if n==a
       count=count+1;
       c(j)=count;
       s(j)=ImageArray(n);
       elseif ImageArray(n)==ImageArray(n+1)
       count=count+1;
       elseif ImageArray(n)==b
       count=count+1;
       c(j)=count;
       s(j)=ImageArray(n);
       j=j+1;
       count=0;
       end
      end
      %%Calculation Bit Cost
      InputBitcost=row*col*8;
      InputBitcost=(InputBitcost);
      c1=length(c);
      s1=length(s);
      OutputBitcost= (c1*8)+(s1*8);
      OutputBitcost=(OutputBitcost);
      %%Run Length Decoding g=length(s);
      j=1;
      l=1;
      for i=1:g
       v(l)=s(j);
       if c(j)~=0
       w=l+c(j)-1;
       for p=l:w
       v(l)=s(j);
       l=l+1;
       end
       end
       j=j+1;
      end
      ReconstructedImageArray=v;
      %%Inverse ZigZag
      ReconstructedImage=invZigzag(ReconstructedImageArray)
      %%Inverse Quantization
      ReconstructedImage=ReconstructedImage*quantizedvalue;
4 Commenti
  Walter Roberson
      
      
 il 16 Giu 2024
				Sure, you can combine zigzag scanning with RLE. The resulting code would be unclear and probably would be difficult to maintain. It would probably be much more effective to have a zigzag scan function separate from the RLE function.
Risposte (1)
  Walter Roberson
      
      
 il 28 Mar 2018
        That code is from https://www.pantechsolutions.net/image-processing-projects/image-compression-using-run-length-encoding and has been posted without attribution.
The complete code is being sold for 2000 rupees. It is not our place to duplicate commercial code for free.
Code for RLE encoding with zigzag scan has been posted a few times on MATLAB Answers -- zigzag scan is used by JPEG encoding, so there have been a number of posts of the code for that.
Vedere anche
Categorie
				Scopri di più su Denoising and Compression in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



