Hello, I want to use the gray wolf algorithm to hide images.
조회 수: 1 (최근 30일)
Walter Roberson 2022년 12월 25일
The general steps would be:
- read in the image to hide and the cover image
- 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)
- Using the discretized image and the cover image, optimize something using your favorite optimizer.
- Using information from the previous step, determine where to place bits in the cover image
- 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
- 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)
- write out the modified image to a file
- Later, read in the modified image
- convert the modified image to binary
- using the information inserted into fixed positions, read out the information about where you hid the other bits
- using the information about where the other bits are, pull out the hidden bits from the modified image
- convert the hidden bits back into an image
- make sure the reconstructed image is the appropriate scale and data type
- 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.