Hello, I want to use the gray wolf algorithm to hide images.

조회 수: 6 (최근 30일)
javad danesh
javad danesh 2022년 12월 24일
답변: Walter Roberson 2022년 12월 25일
Hello, I want to use the gray wolf algorithm to hide images. But unfortunately, I am not proficient in MATLAB to be able to use this algorithm to optimize images to achieve the desired psnr. Can anyone help?

답변 (2개)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2022년 12월 24일
Have you seen this published 3rd party toolbox of grey wolf optimizer: https://www.mathworks.com/matlabcentral/fileexchange/47258-grey-wolf-optimizer-toolbox

Walter Roberson
Walter Roberson 2022년 12월 25일
The general steps would be:
  1. read in the image to hide and the cover image
  2. convert the image hide and cover image to binary (it would also common to quantize the image to hide, perhaps convert it to grayscale or even black and white)
  3. Using the discretized image and the cover image, optimize something using your favorite optimizer.
  4. Using information from the previous step, determine where to place bits in the cover image
  5. Using a technique such as LSB or DCT, embed the bits in the cover image. This might include embedding information in fixed positions about what hiding parameters were used
  6. make sure the modified image is appropriate scale and data type (the embedding process commonly produces double precision values in the range 0-ish to 255-ish rather than uint8)
  7. write out the modified image to a file
  8. Later, read in the modified image
  9. convert the modified image to binary
  10. using the information inserted into fixed positions, read out the information about where you hid the other bits
  11. using the information about where the other bits are, pull out the hidden bits from the modified image
  12. convert the hidden bits back into an image
  13. make sure the reconstructed image is the appropriate scale and data type
  14. write out the recovered image to a file (might not always be needed)
The problem you have is step 3, the "optimize something" step. You have not defined what you are optimizing -- and until you know what you are optimizing, there is no point in doing any of these steps.
There is no "natural" thing to optimize in this situation. There are a lot of things you could optimize -- which is about like saying that there are lot of different Rube Goldberg Machines that you could build. You could optimize the weights of a 768 degree polynomial to maximize the number of bits representing "purple" that get placed at locations that appear in the Fibonacci series. Would it be a good idea to do that? Probably not. Most of the things you could optimize with regards to hiding bits are probably not good ideas.

Community Treasure Hunt

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

Start Hunting!

Translated by