• 【将文本编码为图像灰度级别】以 ASCII 编码并与灰度级别位混合将文本字符串隐藏到图像像素的最低位中,使其不明显研究(Matlab代码实现)


     💥💥💞💞欢迎来到本博客❤️❤️💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    📋📋📋本文目录如下:🎁🎁🎁

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现


    💥1 概述

    经过文本编码技术的应用,我们可以将文本字符串隐藏在图像像素的最低位中,使其在视觉上不易察觉。

    在这个实例中,用户可以输入文本消息,并选择要隐藏消息的图像(这些图像是来自MATLAB附带的演示图像列表)。用户还可以选择要用于编码消息的位平面。首先,将文本消息转换为ASCII代码,然后将其转换为二进制字符串。接着,将被选择的位平面与图像像素相对应,从左上角像素开始,自上而下,自左至右进行分配。

    由于文本消息以ASCII编码并与灰度级别位混合,所以在图像上并不容易被察觉到。这样的隐藏技术在隐写术领域中具有重要意义,允许用户在图像中嵌入机密信息,而外观上几乎没有变化。

    通过这种方法,可以实现图像与文本之间的隐蔽通信,为信息安全和隐私保护提供了一种隐蔽的手段。然而,需要注意的是,隐写术的应用必须遵循法律和伦理准则,以确保信息的嵌入和提取仅在合法的领域进行。

    📚2 运行结果

    部分代码:

    1. if numberOfColorChannels > 1
    2. % It's not really gray scale like we expected - it's color.
    3. % Convert it to gray scale by taking only the green channel.
    4. grayCoverImage = grayCoverImage(:, :, 2); % Take green channel.
    5. elseif ~isempty(storedColorMap)
    6. % There's a colormap, so it's an indexed image, not a grayscale image.
    7. % Apply the color map to turn it into an RGB image.
    8. grayCoverImage = ind2rgb(grayCoverImage, storedColorMap);
    9. % Now turn it into a gray scale image.
    10. grayCoverImage = uint8(255 * mat2gray(rgb2gray(grayCoverImage)));
    11. end
    12. [rows, columns, numberOfColorChannels] = size(grayCoverImage); % Update. Only would possibly change, and that's if the original image was RGB or indexed.
    13. % Display the image.
    14. hFig = figure;
    15. subplot(1, 2, 1);
    16. imshow(grayCoverImage, []);
    17. axis on;
    18. caption = sprintf('The Original Grayscale Image\nThe "Cover" Image.');
    19. title(caption, 'FontSize', fontSize, 'Interpreter', 'None');
    20. % Set up figure properties:
    21. % Enlarge figure to full screen.
    22. set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
    23. % Get rid of tool bar and pulldown menus that are along top of figure.
    24. set(gcf, 'Toolbar', 'none', 'Menu', 'none');
    25. % Give a name to the title bar.
    26. set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
    27. %===============================================================================
    28. % Get the string the user wants to hide:
    29. hiddenString = 'This is your sample hidden string.';
    30. % Ask user for a string.
    31. defaultValue = hiddenString;
    32. titleBar = 'Enter the string you want to hide';
    33. userPrompt = 'Enter the string you want to hide';
    34. caUserInput = inputdlg(userPrompt, titleBar, [1, length(userPrompt) + 75], {num2str(defaultValue)});
    35. if isempty(caUserInput)
    36. % Bail out if they clicked Cancel.

    if numberOfColorChannels > 1
        % It's not really gray scale like we expected - it's color.
        % Convert it to gray scale by taking only the green channel.
        grayCoverImage = grayCoverImage(:, :, 2); % Take green channel.
    elseif ~isempty(storedColorMap)
        % There's a colormap, so it's an indexed image, not a grayscale image.
        % Apply the color map to turn it into an RGB image.
        grayCoverImage = ind2rgb(grayCoverImage, storedColorMap);
        % Now turn it into a gray scale image.
        grayCoverImage = uint8(255 * mat2gray(rgb2gray(grayCoverImage)));
    end
    [rows, columns, numberOfColorChannels] = size(grayCoverImage); % Update.  Only would possibly change, and that's if the original image was RGB or indexed.
    % Display the image.
    hFig = figure;
    subplot(1, 2, 1);
    imshow(grayCoverImage, []);
    axis on;
    caption = sprintf('The Original Grayscale Image\nThe "Cover" Image.');
    title(caption, 'FontSize', fontSize, 'Interpreter', 'None');

    % Set up figure properties:
    % Enlarge figure to full screen.
    set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
    % Get rid of tool bar and pulldown menus that are along top of figure.
    set(gcf, 'Toolbar', 'none', 'Menu', 'none');
    % Give a name to the title bar.
    set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off') 

    %===============================================================================
    % Get the string the user wants to hide:
    hiddenString = 'This is your sample hidden string.';
    % Ask user for a string.
    defaultValue = hiddenString;
    titleBar = 'Enter the string you want to hide';
    userPrompt = 'Enter the string you want to hide';
    caUserInput = inputdlg(userPrompt, titleBar, [1, length(userPrompt) + 75], {num2str(defaultValue)});
    if isempty(caUserInput)
        % Bail out if they clicked Cancel.

    🎉3 参考文献

    文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

    [1]张健.复杂图像文本提取关键技术与应用研究[D].南开大学,2015.

    [2]张姁.基于小波的彩色图像灰度水印算法研究[D].河北工业大学[2023-09-25].DOI:10.7666/d.d049536.

    [3]刘勇.二值图像压缩编码算法的若干研究[D].山东大学,2009.DOI:10.7666/d.y1562519.

    🌈4 Matlab代码实现

  • 相关阅读:
    C++入门01—从hello word!开始
    Mysql三种日志(binlog,redolog,undolog)的作用和区别
    机械女生,双非本985硕,目前学了C 基础知识,转嵌入式还是java更好?
    Mac 电脑查看本地maven,及私有仓库的搭建与使用【nexus的配置与使用】
    用电话比喻计算机网络协议
    Kubernetes云原生实战00 何为云原生?
    安卓系统开发之systrace
    QT 面试题汇总[通俗易懂]
    类 Unix 系统的文件目录结构
    拼多多开放平台订单信息查询接口【pdd.order.basic.list.get订单基础信息列表查询接口(根据成交时间)】代码对接教程
  • 原文地址:https://blog.csdn.net/Ke_Yan_She/article/details/133378578