Using wcompress in Matlab

조회 수: 7 (최근 30일)
Rhania MacBain
Rhania MacBain 2020년 1월 21일
댓글: Rhania MacBain 2020년 1월 24일
I am trying to demonstrate image compression via the haar wavelet transform in Matlab with the following code:
Xc = wcompress('c', J, 'apples.wtc', 'haar')
And I am getting the message:
Undefined function or variable 'Encoded_wtbx_DEC'.
Error in wcompress (line 491)
fileSize = wtcmngr('save',typeSAVE,Sav_filename,method_COMP,Encoded_wtbx_DEC);
Does anyone know why this could be?

채택된 답변

Walter Roberson
Walter Roberson 2020년 1월 24일
'haar' is not one of the valid compression methods for wcompress()
The valid compression methods are divided in three categories.
  • Progressive Coefficients Significance Methods (PCSM): MATLAB NameCompression Method Name
  • 'ezw'Embedded Zerotree Wavelet'
  • 'spiht'Set Partitioning In Hierarchical Trees
  • 'stw'Spatial-orientation Tree Wavelet
  • 'wdr'Wavelet Difference Reduction
  • 'aswdr'Adaptively Scanned Wavelet Difference Reduction
  • 'spiht_3d'Set Partitioning In Hierarchical Trees 3D for truecolor images
For more details on these methods, see the references and especially Walker and also Said and Pearlman.
  • Coefficients Thresholding Methods (CTM-1): MATLAB NameCompression Method Name
  • 'lvl_mmc'Subband thresholding of coefficients and Huffman encoding
For more details on this method, see the Strang and Nguyen reference.
  • Coefficients Thresholding Methods (CTM-2): MATLAB NameCompression Method Name
  • 'gbl_mmc_f'Global thresholding of coefficients and fixed encoding
  • 'gbl_mmc_h'Global thresholding of coefficients and Huffman encoding
Notice the lack of a 'haar' option.

추가 답변 (1개)

Dinesh Yadav
Dinesh Yadav 2020년 1월 24일
Hi Rhania,
There could be one of multiple reasons for the above error.
  • The variable or function definition of "Encoded_wtbx_DEC" is not defined prior to the command where it is used.
  • If it is defined in some other file or folder, they must be added to path or appropriately import variables into your current file where you are using it.
  • Check for spelling error as names of varaibles/functions are case sensitive.
Hope it helps.
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 1월 24일
Encoded_wtbx_DEC is an internal variable to wcompress. It is assigned a value by each of the various cases of the switch method_COMP near line 425 of wcompress. However, in the situation where the user-provided compression method is not any of 'gbl_mmc_h','gbl_mmc_f', 'lvl_mmc', 'ezw','spiht','spiht_3d','wdr','aswdr','stw' then no value is assigned to the variable and the error message is generated when the code tries to use the variable.
The code could be better designed to catch invalid compression methods, but the primary trigger is that the user passed in an invalid compression method.
Rhania MacBain
Rhania MacBain 2020년 1월 24일
Thank you so much for explaining that, I really apppreciate it!

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Compression에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by