opencv图像基础学习

2.3图像的加密解密

源码如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt
def passImg():img=cv2.imread('./image/cat.jpg',0)h,w=img.shape#生成一个密码,加密key_img=np.random.randint(0,256,size=(h,w),dtype=np.uint8)img_addm=cv2.bitwise_xor(img,key_img)print(key_img.shape,img.shape)#解密img_jm=cv2.bitwise_xor(key_img,img_addm)plt.figure(figsize=(10, 7))plt.subplot(2, 2, 1), plt.title("cat"), plt.imshow(img)plt.subplot(2, 2, 2), plt.title("key"), plt.imshow(key_img)plt.subplot(2, 2, 3), plt.title("addom"), plt.imshow(img_addm)plt.subplot(2, 2, 4), plt.title("jiemi"), plt.imshow(img_jm)plt.show()if __name__ == '__main__':passImg()
  1. def passImg()::定义一个名为 passImg 的函数。
    • 使用 plt.figure 和 plt.subplot 以及 plt.imshow 函数将原始图像、密钥、加密图像和解密图像显示在一个 2x2 的布局中。
    • img_jm = cv2.bitwise_xor(key_img, img_addm):使用 cv2.bitwise_xor 对密钥和加密后的图像进行异或操作,得到解密后的图像 img_jm
    • img_addm = cv2.bitwise_xor(img, key_img):使用 cv2.bitwise_xor 对图像和密钥进行异或操作,得到加密后的图像 img_addm
    • key_img = np.random.randint(0, 256, size=(h, w), dtype=np.uint8):生成一个与图像大小相同(h 行 w 列)的随机矩阵作为密钥,元素范围在 0 到 255 之间,数据类型为 uint8
    • h, w = img.shape:获取图像的高度 h 和宽度 w
    • img = cv2.imread('./image/cat.jpg', 0):以灰度模式(0 表示)读取图像 ./image/cat.jpg 并存储在 img 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3589.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++11》中的显式虚函数重载:深入理解与应用

在C编程中,虚函数是一种强大的工具,它允许我们实现多态。通过虚函数,我们可以在派生类中重写基类的函数,从而实现运行时多态。然而,当我们在派生类中重载虚函数时,可能会遇到一些问题。在C11中,…

计算机网络 (41)文件传送协议

前言 一、文件传送协议(FTP) 概述: FTP(File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码&#xff0…

服务器迁移MySQL

由于公司原有的服务器不再使用,需要将老的服务器上的MySQL迁移到新的服务器上,因此需要对数据进行备份迁移,前提是两台服务器已安装相同版本的MySQL,这里就不再讲解MySQL的安装步骤了,可以安装包、可以在线下载、可以容…

IoTDB 数据类型相关问题

指定数据类型 问题 1 IoTDB 通过 tools/import-data.sh 导入数据时,发现默认推断类型配置没有生效,请问是什么原因? 现象 解决方案 通过 tools/import-data.sh 命令导入数据时,需要指定 -typeInfer 参数,用于指定类…

4.Spring AI Prompt:与大模型进行有效沟通

1.什么是提示词 在人工智能领域,提示词(Prompt)扮演着至关重要的角色,它宛如一把精准的钥匙,为 AI 大模型开启理解之门。作为向模型输入的关键信息或引导性语句,提示词能够助力模型迅速洞悉问题需求&#…

【12】Word:张老师学术论文❗

目录 题目 ​NO2 NO3 NO4 NO5 NO6 NO7.8 题目 NO2 布局→页面设置→纸张:A4→页边距:上下左右边距→文档网格:只指定行网格→版式:页眉和页脚:页脚距边界:1.4cm居中设置论文页码:插入…

MyBatisPlus学习笔记

To be continue… 文章目录 介绍快速入门入门案例常用注解常用配置 核心功能条件构造器自定义SQLService接口 介绍 MyBatisPlus只做增强不做改变,引入它不会对现有工程产生影响。只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。…

Python根据图片生成学生excel成绩表

学习笔记: 上完整代码 import os import re from openpyxl import Workbook, load_workbook from openpyxl.drawing.image import Image as ExcelImage from PIL import Image as PilImage# 定义图片路径和Excel文件路径 image_dir ./resources/stupics # 图片所…

DPIN与CESS Network达成全球战略合作,推动DePIN与AI领域创新突破

2025年1月13日, DPIN电竞酒店首次亮相,并于马来西亚马六甲和新加坡成功举办《A*STAR前沿考察盛典》。DPIN基金会透露,过去两个月,DPIN成功验证了去中心化GPU算力的首个应用,证明电竞酒店可成为快速落地的创新场景。 活动期间&…

Red Hat8:搭建FTP服务器

目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…

K8S开启/关闭审计日志

K8S默认禁用审计 开启/关闭 k8s 审计日志 默认 Kubernetes 集群不会输出审计日志信息。通过以下配置,可以开启 Kubernetes 的审计日志功能。 准备审计日志的 Policy 文件配置 API 服务器,开启审计日志重启并验证 准备审计日志 Policy 文件 apiVersio…

OpenCV基础:获取子矩阵的几种方式

目录 相关阅读 方法一:使用切片操作 方法二:使用高级索引 方法三:使用条件筛选 方法四:使用 numpy 的 take 函数 相关阅读 OpenCV基础:矩阵的创建、检索与赋值-CSDN博客 OpenCV基础:图像运算-CSDN博客…

深度学习项目--基于LSTM的火灾预测研究(pytorch实现)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 LSTM模型一直是一个很经典的模型,这个模型当然也很复杂,一般需要先学习RNN、GRU模型之后再学,GRU、LSTM的模型讲解将…

计算机网络-物理层

重点内容 物理层的任务几种常用的信道复用技术几种常用的宽带接入技术,重点是FTTx 目录 重点内容 一.物理层的基本概念 二.数据通信基础知识 2.1通信系统模型 2.2信道 2.2.1调制 调制的两大类及其特点 1. 基带调制(Baseband Modulation / Coding…

在服务器上增加新网段IP的路由配置

在服务器上增加新网段IP的路由配置 前提条件步骤一:检查当前路由表步骤二:添加新路由步骤三:验证新路由步骤四:持久化路由配置脚本示例结论在网络管理中,路由配置是一项基本且重要的任务。它决定了数据包在网络中的传输路径。本文将详细介绍如何在服务器上增加新的路由配置…

无降智o1 pro——一次特别的ChatGPT专业模式探索

这段时间和朋友们交流 ChatGPT 的使用心得,大家都提到一个很“神秘”的服务:它基于 O1 Pro 模型,能够在对话里一直保持相对高水平的理解和回复,不会突然变得“降智”。同时,整体使用还做了免折腾的网络设置——简单一点…

如何在 Google Cloud Shell 中使用 Visual Studio Code (VS Code)?

Google Cloud Shell 是一个基于浏览器的命令行界面,它提供了一个临时的虚拟机环境,允许开发者在没有本地环境配置的情况下使用 Google Cloud 的各种服务。它还提供了一个免费的 5GB 存储空间以及可以在其中执行所有 Google Cloud 操作的命令行界面。 Vis…

ToDesk设置临时密码和安全密码都可以当做连接密码使用

ToDesk 在各领域办公都已经是非常常见了 为了安全 ToDesk 设置了连接密码,想连接 需要输入远程码和连接密码 我们刚打开 系统默认给我们用的是临时密码,安全性确实很强 和定时Tokey一样,固定时间切换。 但是 如果我们要经常连接这个电脑&a…

语义检索效果差?深度学习rerank VS 统计rerank选哪个

前段时间我开发了一个用白话文搜索语义相近的古诗词的应用(详见:《朋友圈装腔指南:如何用向量数据库把大白话变成古诗词》),但是有时候搜索结果却不让人满意,排名靠前的结果和查询的语义没啥关系&#xff0…

vue 学习笔记 - 创建第一个项目 idea

1、安装Vue CLI 查看npm版本号 (可跳过) % npm -v 11.0.0安装Vue CLI % npm install -g vue/cli2、创建项目 进入工程文件目录 % cd /Users/ruizhifeng/work/aina-client查看vue 版本号 (可跳过) % vue --version vue/cli 5…