\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors) \newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx \newcommand\unit[1]{\mathrm{#1}} \newcommand\num[1]{#1} \newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/} \newcommand\squared{{}^2} \newcommand\cubed{{}^3} % % Scale \newcommand\milli{\unit{m}} \newcommand\centi{\unit{c}} \newcommand\kilo{\unit{k}} \newcommand\mega{\unit{M}} % % Percent \newcommand\percent{\unit{\%}} % % Angle \newcommand\radian{\unit{rad}} \newcommand\degree{\unit{{}^\circ}} % % Time \newcommand\second{\unit{s}} \newcommand\s{\second} \newcommand\minute{\unit{min}} \newcommand\hour{\unit{h}} % % Distance \newcommand\meter{\unit{m}} \newcommand\m{\meter} \newcommand\inch{\unit{in}} \newcommand\foot{\unit{ft}} % % Force \newcommand\newton{\unit{N}} \newcommand\kip{\unit{kip}} % kilopound in "freedom" units - edit made by Sri % % Mass \newcommand\gram{\unit{g}} \newcommand\g{\gram} \newcommand\kilogram{\unit{kg}} \newcommand\kg{\kilogram} \newcommand\grain{\unit{grain}} \newcommand\ounce{\unit{oz}} % % Temperature \newcommand\kelvin{\unit{K}} \newcommand\K{\kelvin} \newcommand\celsius{\unit{{}^\circ C}} \newcommand\C{\celsius} \newcommand\fahrenheit{\unit{{}^\circ F}} \newcommand\F{\fahrenheit} % % Area \newcommand\sqft{\unit{sq\,\foot}} % square foot % % Volume \newcommand\liter{\unit{L}} \newcommand\gallon{\unit{gal}} % % Frequency \newcommand\hertz{\unit{Hz}} \newcommand\rpm{\unit{rpm}} % % Voltage \newcommand\volt{\unit{V}} \newcommand\V{\volt} \newcommand\millivolt{\milli\volt} \newcommand\mV{\milli\volt} \newcommand\kilovolt{\kilo\volt} \newcommand\kV{\kilo\volt} % % Current \newcommand\ampere{\unit{A}} \newcommand\A{\ampere} \newcommand\milliampereA{\milli\ampere} \newcommand\mA{\milli\ampere} \newcommand\kiloampereA{\kilo\ampere} \newcommand\kA{\kilo\ampere} % % Resistance \newcommand\ohm{\Omega} \newcommand\milliohm{\milli\ohm} \newcommand\kiloohm{\kilo\ohm} % correct SI spelling \newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx \newcommand\megaohm{\mega\ohm} % correct SI spelling \newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx % % Inductance \newcommand\henry{\unit{H}} \newcommand\H{\henry} \newcommand\millihenry{\milli\henry} \newcommand\mH{\milli\henry} % % Power \newcommand\watt{\unit{W}} \newcommand\W{\watt} \newcommand\milliwatt{\milli\watt} \newcommand\mW{\milli\watt} \newcommand\kilowatt{\kilo\watt} \newcommand\kW{\kilo\watt} % % Energy \newcommand\joule{\unit{J}} \newcommand\J{\joule} % % Composite units % % Torque \newcommand\ozin{\unit{\ounce}\,\unit{in}} \newcommand\newtonmeter{\unit{\newton\,\meter}} % % Pressure \newcommand\psf{\unit{psf}} % pounds per square foot \newcommand\pcf{\unit{pcf}} % pounds per cubic foot \newcommand\pascal{\unit{Pa}} \newcommand\Pa{\pascal} \newcommand\ksi{\unit{ksi}} % kilopound per square inch \newcommand\bar{\unit{bar}} \end{aligned}\end{align} \]

Oct 24, 2024 | 218 words | 2 min read

9.2.3. Task 3#

Learning Objectives#

  • Convert a binary message into readable text.

Task Instructions#

Save the flowcharts for each of your tasks in tp1_team_teamnumber.pdf You will also need to include these flowcharts in your final report.

  1. Write Python code that converts a binary string into ASCII text. Each character in the message is represented by 8 bits (1 byte). Convert each byte into its corresponding ASCII character and append it to a final message string. Name this program tp1_team_3_teamnumber.py.

    Sample Output

    Use the values in Table 9.18 below to test your program.

    Table 9.18 Test Cases#

    Case

    binary text

    1

    0100100001100101011011000110110001101111

    2

    0111011101101111011100100110110001100100

    Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.

    Case 1 Sample Output

    $ python3 tp1_team_3_teamnumber.py Enter the binary message: 0100100001100101011011000110110001101111 Converted Text: Hello

    Case 2 Sample Output

    $ python3 tp1_team_3_teamnumber.py Enter the binary message: 0111011101101111011100100110110001100100 Converted Text: world

  2. Integrate this code into the LSB extraction code from Task 2 to extract and display the hidden message in a human-readable format. Name this program tp1_team_teamnumber.py.

    Sample Output

    Use the values in Table 9.19 below to test your program.

    Table 9.19 Test Cases#

    Case

    image_path

    start_seq

    end_seq

    1

    ref_col_p.png

    007

    700

    2

    ref_gry_p.png

    007

    700

    3

    ref_gry_p.png

    222

    333

    Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.

    Case 1 Sample Output

    $ python3 tp1_team_teamnumber.py Enter the path of the image you want to load: ref_col_p.png Enter the start sequence: 007 Enter the end sequence: 700 Below is the img_array output of ref_col_p.png: Extracted Message: 0100110001010101010000110100101101011001 Converted Text: LUCKY

    Case 2 Sample Output

    $ python3 tp1_team_teamnumber.py Enter the path of the image you want to load: ref_gry_p.png Enter the start sequence: 007 Enter the end sequence: 700 Below is the img_array output of ref_gry_p.png: Extracted Message: 0100100001000101010011000100110001001111 Converted Text: HELLO

    Case 3 Sample Output

    $ python3 tp1_team_teamnumber.py Enter the path of the image you want to load: ref_gry_p.png Enter the start sequence: 222 Enter the end sequence: 333 Below is the img_array output of ref_gry_p.png: Start or end sequence not found in the image.