python处理图像的各种技术镜像、旋转、遮挡、叠加、条带化

2.6 图像镜面对称

1、将图像水平镜面转换。
2、将图像垂直镜面转换。
import random   #导入模块
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
# 将图像沿着水平方向重复三次。
b=a.copy()
d=a.copy()
# 将图像水平镜面转换。(只需要将列进行颠倒,行不变)
b=b[:,::-1]
#  将图像垂直镜面转换。(只需要将行进行颠倒,列不变)
d=d[::-1,:]
fig,ax = plt.subplots(2,2)
fig.set_size_inches(5,5)  # 画布大小
ax[0,0].imshow(a)
ax[0,1].imshow(b)
ax[1,0].imshow(a)
ax[1,1].imshow(d)
plt.tight_layout()  # 自动调整间距

输出分别如下:

In [12]:

 
#请在此处写你的代码
import random   #导入模块
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
b=a.copy()
d=a.copy()
# 将图像水平镜面转换。(只需要将列进行颠倒,行不变)
b=b[:,::-1]
#  将图像垂直镜面转换。(只需要将行进行颠倒,列不变)
d=d[::-1,:]
fig,ax = plt.subplots(2,2)
fig.set_size_inches(5,5)  # 画布大小
ax[0,0].imshow(a)
ax[0,1].imshow(b)
ax[1,0].imshow(a)
ax[1,1].imshow(d)
plt.tight_layout()  # 自动调整间距

2.7 图像的左右旋转

1、将图像向左旋转90 / 180度。
2、将图像向右旋转90 / 180度。
import random   #导入模块
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
b=a.copy()
c=a.copy()
d=a.copy()
e=a.copy()
# 将图像向左旋转90 (转置后头还在原位置,所以还得垂直颠倒)
# 注意不能直接转置,我们只转置【高,宽,像素】中的高和宽,转成【宽,高,像素】而不是【像素,宽,高】
b=b.swapaxes(0,1)
b=b[::-1,:]
# 将图像向右旋转90(转置后头还在原位置,所以还得水平颠倒)
d=d.swapaxes(0,1)
d=d[:,::-1]
# 将图像向左旋转180 ==向右旋转180(将图像分别进行水平和垂直颠倒,先哪个都行)
c=c[::-1,:]
c = c[:,::-1]
# 将图像向右旋转180
e=e[:,::-1]
e=e[::-1,:]
fig,ax = plt.subplots(2,3)
fig.set_size_inches(5,5)  # 画布大小
ax[0,0].imshow(a)
ax[0,1].imshow(b)
ax[0,2].imshow(c)
ax[1,0].imshow(a)
ax[1,1].imshow(d)
ax[1,2].imshow(e)
plt.tight_layout()  # 自动调整间距

输出分别如下:

In [11]:

#请在此处写你的代码
import random   #导入模块
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
# 将图像沿着水平方向重复三次。
b=a.copy()
d=a.copy()
# 将图像水平镜面转换。(只需要将列进行颠倒,行不变)
b=b[:,::-1]
#  将图像垂直镜面转换。(只需要将行进行颠倒,列不变)
d=d[::-1,:]
fig,ax = plt.subplots(2,2)
fig.set_size_inches(5,5)  # 画布大小
ax[0,0].imshow(a)
ax[0,1].imshow(b)
ax[1,0].imshow(a)
ax[1,1].imshow(d)
plt.tight_layout()  # 自动调整间距

2.8 图像的颜色转换

在彩色图像中,用绿色值代替以前的红色值,用蓝色值代替以前的绿色值,用红色值代替以前的蓝色值。

#导入模块
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
plt.imshow(a[:,:,[1,2,0]])

输出如下:

In [13]:

#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt 
a = plt.imread("1.jpg")
plt.imshow(a[:,:,[1,2,0]])

Out[13]:

<matplotlib.image.AxesImage at 0x7fb1a69c5cc0>

2.9 图像的颜色遮挡/叠加

1、在指定的区域使用特定的纯色去遮挡图像。
2、在指定的区域使用随机生成的图像去遮挡图像。
3、使用小图像放在大图像上。
#导入模块
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
# 在指定的区域使用特定的纯色去遮挡图像。
b=a.copy()
b[100:200,200:400] = [0,0,0]
plt.imshow(b)

输出如下:

In [14]:

#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
# 在指定的区域使用特定的纯色去遮挡图像。
b=a.copy()
b[100:200,200:400] = [0,0,0]
plt.imshow(b)

Out[14]:

<matplotlib.image.AxesImage at 0x7fb1a692ab38>

在指定的区域使用随机生成的图像去遮挡图像。

#导入模块

import numpy as np
import matplotlib.pyplot as plt

a = plt.imread("1.jpg")
print(a.shape)
c=a.copy()
e=np.random.randint(0,256,(200,200,3),dtype=np.uint8)
c[100:300,100:300] = e
plt.imshow(c)

输出如下:

In [15]:

#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
print(a.shape)
c=a.copy()
e=np.random.randint(0,256,(200,200,3),dtype=np.uint8)
c[100:300,100:300] = e
plt.imshow(c)
(600, 396, 3)

Out[15]:

<matplotlib.image.AxesImage at 0x7fb1a6913b70>

将使用小图像放在大图像上。

import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")

d=a.copy()
k=d[200:400,100:200]
d[100:300,100:200] = k
plt.imshow(d)

输出如下:

In [16]:

#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
d=a.copy()
k=d[200:400,100:200]
d[100:300,100:200] = k
plt.imshow(d)

Out[16]:

<matplotlib.image.AxesImage at 0x7fb1a687c5c0>

2.10 图像的分块乱序

将图像分成若干块子图像(例如10 * 10),然后打乱各子图像顺序(拼图)。

import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
# 将图像的两部分进行组合
t=a.copy()
t=np.concatenate((t[100:300,:,:],t[200:400,:,:]),axis=0)
plt.imshow(t)

输出如下:

In [17]:

#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
# 将图像的两部分进行组合
t=a.copy()
t=np.concatenate((t[100:300,:,:],t[200:400,:,:]),axis=0)
plt.imshow(t)

Out[17]:

<matplotlib.image.AxesImage at 0x7fb1a67e1240>

将图像拆分为一条一条的。

import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")

t=a.copy()
height=t.shape[0]
# 1、对数据进行切分
li=np.split(t,range(30,height,30),axis=0)
# 2、洗牌
np.random.shuffle(li)  # 就地修改
# 3、合并
t=np.concatenate(li,axis=0)
plt.imshow(t)

输出如下:

In [18]:

 
#请在此处写你的代码
import numpy as np
import matplotlib.pyplot as plt
a = plt.imread("1.jpg")
t=a.copy()
height=t.shape[0]
# 1、对数据进行切分
li=np.split(t,range(30,height,30),axis=0)
# 2、洗牌
np.random.shuffle(li)  # 就地修改
# 3、合并
t=np.concatenate(li,axis=0)
plt.imshow(t)

Out[18]:

<matplotlib.image.AxesImage at 0x7fb1a6a4ce48>

这是搬运的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeCun、田渊栋参与撰写,70页「自监督学习」大全

来源 | 机器之心 微信号&#xff1a;almosthuman2014 「关于自监督学习&#xff0c;你想知道但又不敢问的一切都在这里了。」图灵奖得主、Meta 人工智能首席科学家 Yann LeCun 刚刚发了这样一则推文。 在推文中&#xff0c;LeCun 介绍了他和 Meta 人工智能研究院研究员、研究经…

javaEE初阶 — 服务器版本的表白墙案例

文章目录 原来版本涉及的问题设计程序1 点击提交2 页面加载 实现后端代码1 新建一个 Maven 项目。2 按照之前第一个 Servlet 程序的步骤来进行设置3 新建一个 MessageServlet 类 实现前端代码1 点击提交的时给服务器发送一个 POST 请求2 在页面加载时发送一个 GET 请求3 将数据…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 赛后总结之31页论文及代码

相关信息 &#xff08;1&#xff09;建模思路 【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 详细建模过程解析及代码实现 【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题 详细建…

2.3 定点乘法运算

学习目标&#xff1a; 如果我要学习定点乘法运算&#xff0c;我会按照以下步骤进行学习&#xff1a; 确定学习目标&#xff1a;明确学习定点乘法运算的目的和重点&#xff0c;以便有针对性地进行学习。 掌握基础知识&#xff1a;首先需要了解定点数和定点乘法的基础知识&…

PySide2 QWebEngine与Web js交互

文章目录 单向交互双向传值案例 单向交互 QWebEngineView加载web页面&#xff0c;web页面中点击按钮&#xff0c;执行js代码&#xff0c;js的返回值传给QWebEnginePage&#xff0c;使用python进行保存结果。 单向&#xff0c;js向python(PySide2)端传输数据。 前端实现 <…

力扣刷题day35|416分割等和子集

416. 分割等和子集 力扣题目链接 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割…

智能网联汽车城市化的进程和思考

4月19日&#xff0c;工信部官网显示&#xff0c;支持湖北&#xff08;襄阳&#xff09;、浙江&#xff08;德清&#xff09;、广西&#xff08;柳州&#xff09;创建国家级车联网先导区。至此&#xff0c;车联网国家级先导区正式扩容&#xff0c;由4个增至7个。智能网联作为新生…

网络字节序和主机字节序详解(附代码)

一、网络字节序和主机字节序 网络字节序和主机字节序是计算机网络中常用的两种数据存储格式。 主机字节序&#xff1a; 指的是在计算机内部存储数据时采用的字节排序方式。对于一个长为4个字节的整数&#xff0c;若采用大端字节序&#xff0c;则该整数在内存中的存储顺序是&a…

前端面试题(持续更新中)

【1】null和undefined的区别 同&#xff1a; 1.都是js的基本类型&#xff0c;保存在栈中&#xff0c;表示“无、没有”的意思。 2.if语句中的null和undefined都是false。 var a undefined var b null if (!a) {console.log(undefined is false); } if (!b) {console.log(null…

手动搭建高可用的 kubernetes 集群(v1.16.6)

手动搭建高可用的 kubernetes 集群(v1.16.6) 目录 手动搭建高可用的 kubernetes 集群(v1.16.6) 1、组件版本和配置策略 1.1 主要组件版本1.2 主要配置策略2、初始化系统和全局变量 2.1 集群规划2.2 初始化系统环境 2.2.1 关闭防火墙2.2.2 关闭 swap 分区2.2.3 关闭 SELinux2.2.…

【MySQL自学之路】第5天——对数据表数据的增删改查1

目录 前言 使用的数据库 数据表 ​编辑 表结构 插入数据&#xff08;insert into&#xff09; 插入一条数据 插入多条数据 修改数据&#xff08;update set&#xff09; 修改一条数据的值 ​编辑 修改多条数据的值 删除数据&#xff08;delete from&#xff09;…

【云原生】Epinio--Kubernetes 的应用程序开发引擎

Kubernetes 已成为容器编排的事实标准&#xff0c;改变了我们的开发流程。十年前&#xff0c;我们只需要将代码打包成 war/jar 包&#xff0c;然后启动应用即可。然而&#xff0c;现在面向 Kubernetes 的开发&#xff0c;交付的产物有可能是 Helm Chart、Workload Yaml、Docker…

Postman测试实践笔记

Postman测试实践 文章目录 Postman测试实践一、Postman安装与使用1.1 Postman下载及安装1.1.2 Postman Mac版 1.2 Postman 更新1.2.1 mac 版更新 1.3 Postman 其他问题 二、网络相关知识2.1 接口2.1.1 软件为什么需要接口 2.2 接口测试2.2.1 什么是接口测试&#xff1a;2.2.2 为…

经典回归算法

回归的概念 回归方程&#xff1a; 写成矩阵&#xff1a; 核心问题&#xff0c;构建预测函数z来映射特征矩阵x和标签y的线性关系 预测的目标值&#xff0c;有连续值也有离散值 连续值&#xff0c;就直接预测输出就行离散值&#xff0c;需要在输出端加一个变换函数例如。Si…

C#,生信软件实践(02)——欧洲分子生物学实验室(EMBL格式文件)转为核酸序列或多肽序列(FASTA格式文件)的源代码

>生信老白写的基础代码.fasta MAYBENOANYUSAGE 1 EMBL 1.1 EMBL组织 欧洲分子生物学实验室EMBL&#xff08;European Molecular Biology Laboratory&#xff09;1974年由欧洲14个国家加上亚洲的以色列共同发起建立&#xff0c;现在由欧洲30个成员国政府支持组成&#xf…

Android 项目必备(四十五)-->2023 年如何构建 Android 应用程序

Android 是什么 Android 是一种基于 Linux 内核并由 Google 开发的开源操作系统。它用于各种设备包括智能手机、平板电脑、电视和智能手表。 目前&#xff0c;Android 是世界上移动设备使用最多的操作系统; 根据 statcounter 的一份最近 12 个月的样本报告;Android 的市场份额…

三、SpringMVC

三、SpringMVC 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为实体…

ApachePOI操作Excel快速入门使用

简介 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目&#xff0c;主要任务是创建和维护Java API&#xff0c;以基于Office Open XML标准&#xff08;OOXML&#xff09;和Microsoft的OLE 2复合文档格式&#xff08;OLE2&#xff09;处理各种文件格式&#xff0…

【KVM虚拟化】· 命令行KVM安装linux

目录 &#x1f341;基础本环境配置 &#x1f341;添加lvm卷 &#x1f341;qemu-img创建磁盘文件 &#x1f342;创建raw格式 &#x1f342;创建虚拟机 &#x1f342;转换格式为qcow2 &#x1f341;virt-install命令参数 &#x1f341;案例操作 &#x1f990;博客主页&#xff1a…

论文笔记:Model-Contrastive Federated Learning

0 简介 论文&#xff1a;Model-Contrastive Federated Learning 代码&#xff1a;https://github.com/QinbinLi/MOON 相关链接&#xff1a;本文主要是将SimCLR对比学习的思想迁移到联邦学习中&#xff0c;关于SimCLR的介绍见https://blog.csdn.net/search_129_hr/article/deta…