How to write a function to find values to decode a hidden text of an image BMP file
I'm trying to find an appropriate value for p & q to decode a hidden text of an image BMP file. The relevant code is as follows:
image_byte_array = est_get_bytes_containing_message()
header_len = 54
message_bit_array = est_extract_bits_from_image(
image_byte_array, header_len, p, q )
message_byte_array = est_convert_bits_to_bytes( message_bit_array )
est_write_message_text( message_byte_array )
if __name__ == '__main__':
i need to do it by following the steps below:
**i need to write a function called est_bit_proportion which takes a Python array as an argument and computes the proportion of ones in it. And I am going to apply this to the existing message_bit_array for a particular choice of values for p and q.
**A code which will try different values of p and q, namely all combinations of p = 1, 2, 3 and q = 1, 2, 3. There are thus nine combinations which I am going to try.
**For each combination of p and q, you are going to run function est_bit_proportion to find the proportion of ones.
**If the proportion of ones for some combination is less than 1 and greater than 0.5, I have the answer. Save those values of p and q and continue with the loop.
So far I have tried with below-mentioned code
for a in range(1, 4, 1):
for b in range(1, 4, 1):
bp = a/b
print( "p =", a, "q =", b, "bp =", "%6.3f" % bp)
if (bp > .5 and bp < 1):
p = a
q = b
print( "The answer is:", "p =", p, "q =", q)
But it's not working properly. The output is looking like below:
p = 1 q = 1 bp = 1.000
p = 1 q = 2 bp = 0.500
p = 1 q = 3 bp = 0.333
p = 2 q = 1 bp = 2.000
p = 2 q = 2 bp = 1.000
p = 2 q = 3 bp = 0.667
The answer is: p = 2 q = 3
p = 3 q = 1 bp = 3.000
p = 3 q = 2 bp = 1.500
p = 3 q = 3 bp = 1.000
It would be really great if someone helps me to find the appropriate way to solve it.