当前位置: 首页 > news >正文

Python实现马赛克图片处理

文章目录

  • 读取图片代码
    • 1、导入使用包
    • 2、读取图片
  • 操作图片
    • 1、上下翻转
    • 2、左右翻转
    • 3、颜色颠倒
    • 4、降低图片精度
    • 5、打马赛克

说明: 在python中,图片可以看成一个三维的矩阵,第一维控制着垂直方向,第二维控制着水平方向,第三维控制颜色。

读取图片代码

1、导入使用包

import numpy as np
import matplotlib as plt
%matplotlib inline

使用%matplotlib inline可以省略plt.show()

2、读取图片

fish = plt.imread('./fish.png')
plt.imshow(fish)

得到的fish对象的值则为图片的矩阵

array([[[0.29411766, 0.39215687, 0.46666667],[0.46666667, 0.4862745 , 0.49803922],[0.4627451 , 0.4862745 , 0.5019608 ],...,[0.4627451 , 0.48235294, 0.49803922],[0.45882353, 0.47843137, 0.49803922],[0.21960784, 0.33333334, 0.44313726]],[[0.2901961 , 0.3764706 , 0.44313726],[0.627451  , 0.6156863 , 0.60784316],[0.85490197, 0.85490197, 0.84705883],...,[0.8627451 , 0.85882354, 0.8509804 ],[0.8509804 , 0.8509804 , 0.84313726],[0.30588236, 0.42352942, 0.5254902 ]],[[0.44705883, 0.45490196, 0.45490196],[0.65882355, 0.654902  , 0.654902  ],[1.        , 1.        , 1.        ],...,[1.        , 1.        , 1.        ],[1.        , 1.        , 1.        ],[0.36078432, 0.49411765, 0.6       ]]], dtype=float32)

效果:
在这里插入图片描述

操作图片

1、上下翻转

fish2 = fish[::-1]
plt.imshow(fish2)

在这里插入图片描述

2、左右翻转

fish3 = fish[::, ::-1]
plt.imshow(fish3)

在这里插入图片描述

3、颜色颠倒

fish4 = fish[::, ::, ::-1]
plt.imshow(fish4)

在这里插入图片描述

4、降低图片精度

fish5 = fish[::4, ::4]
plt.imshow(fish5)

在这里插入图片描述

5、打马赛克

fish6 = fish.copy()
fish6[70:90, 80:120] = 0
plt.imshow(fish6)

在这里插入图片描述

http://www.lryc.cn/news/269555.html

相关文章:

  • 你能描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?
  • 【经典算法】有趣的算法之---蚁群算法梳理
  • 第八届视觉、图像与信号处理国际会议(ICVISP 2024) | Ei, Scopus双检索
  • 《HelloGitHub》第 93 期
  • JAVA B/S架构智慧工地源码,PC后台管理端、APP移动端
  • 【adb】--- win10 配置 adb环境 超详细 (持续更新中)
  • SQL注入安全漏洞详解
  • 数据结构与算法教程,数据结构C语言版教程!(第一部分、数据结构快速入门,数据结构基础详解)四
  • mac安装k8s环境
  • HarmonyOS4.0系列——04、@Styles、@Extend、@Extend事件以及多态样式stateStyles
  • C++项目之酒店客房管理系统架构——设计模式应用场景详解(下)
  • RabbitMQ消息存储JSON格式反序列化
  • Java解决统计有序矩阵中的负数问题
  • 【算法与数据结构】435、LeetCode无重叠区间
  • 【开题报告】基于SpringBoot的茶文化宣传网站设计与实现
  • 用通俗易懂的方式讲解大模型:基于 Langchain 和 ChatChat 部署本地知识库问答系统
  • YOLO训练results.csv文件可视化(原模型与改进模型对比可视化)
  • uni-appcss语法
  • java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Python 简易图形界面库easygui 对话框大全(续)
  • 电容器50ZLH56MEFC6.3X11
  • vscode 支持c,c++编译调试方法
  • MyBatis的缓存!!!!
  • ToB还是ToC?工业级与消费级AR眼镜都能干什么?
  • 设计模式-Java版本
  • 数据库中如何修改和删除字段
  • 在 Golang 应用程序中管理多个数据库
  • 理解开源协议GPL、MIT、BSD、Apache License
  • Talk | 北京大学博士生汪海洋:通向3D感知大模型的前置方案
  • 【C语言数组传参】规则详解