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

图像的反转

图像颜色的反转一般分为两种:一种是灰度图片的颜色反转,另一种是彩色图像的颜色反转。

本节使用的原图如下:

1.1 灰度图像颜色反转

灰度图像每个像素点只有一个像素值来表示,色彩范围在0-255之间,反转方法255-当前像素值。

首先需要安装OpenCV:

导入本例所需的程序包:

In [ ]:

%matplotlib inline

import cv2

import numpy as np

from matplotlib import pyplot as plt

将原图转换为灰度图片:

In [ ]:

img = cv2.imread('./lena.jpg', 1)

height, width, deep = img.shape

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

plt.imshow(gray, cmap='gray')

plt.show()

反转图片中所有的像素值:

In [ ]:

dst = np.zeros((height,width,1), np.uint8)

for i in range(0, height):

    for j in range(0, width):

        grayPixel = gray[i, j]

        dst[i, j] = 255-grayPixel

将反转后的图像保存再显示出来,可以看到灰度颜色已经反转:

In [ ]:

cv2.imwrite("./lena_changed.jpg", dst)

dst = cv2.imread('./lena_changed.jpg', 1)

plt.imshow(dst)

plt.show()

1.2 彩色图像颜色反转

彩色图像的每个像素点由RGB三个元素组成,所以反转的时候需要用255分别减去b,g,r三个值。

重新读取图像并进行颜色反转:

In [ ]:

img = cv2.imread('./lena.jpg', 1)

height, width, deep = img.shape

# 彩色图像颜色反转 NewR = 255-R

dst = np.zeros((height, width, deep), np.uint8)

for i in range(0, height):

    for j in range(0,width):

        (b, g, r) = img[i, j]

        dst[i, j] = (255-b,255-g,255-r)

将反转后的图像保存再显示出来,可以看到彩色图像颜色已经反转:

In [ ]:

dst2 = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)

plt.imshow(dst2)

plt.show()

相关文章:

  • K8s 集群(kubeadm) CA 证书过期解决方案
  • 【代码随想录_Day24】134. 加油站 135. 分发糖果 860. 柠檬水找零 406. 根据身高重建队列
  • 地理信息科学:生态保护的智慧经纬
  • 2024年 Java 面试八股文(20w字)
  • springcloud第4季 分布式事务seata作用服务搭建1
  • Linux上快速定位Java代码问题行
  • 云桌面运维工程师
  • 大数据------JavaWeb------JSP(完整知识点汇总)
  • Spring Boot中的安全漏洞防护
  • Django靓号管理系统:实现用户列表功能
  • react 重新加载子组件
  • 目标检测入门:3.目标检测损失函数(IOU、GIOU、GIOU)
  • 【ubuntu】切换shell并显示git分支名字
  • Python学习笔记28:进阶篇(十七)常见标准库使用之质量控制中的代码质量与风格第二部分
  • 笔记-linux写文件的方法
  • echarts的各种常用效果展示
  • es的写入过程
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Koa2 之文件上传下载
  • Linux各目录及每个目录的详细介绍
  • PHP CLI应用的调试原理
  • Puppeteer:浏览器控制器
  • 微信小程序填坑清单
  • 消息队列系列二(IOT中消息队列的应用)
  • 怎样选择前端框架
  • 正则学习笔记
  • 昨天1024程序员节,我故意写了个死循环~
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #define
  • (1)(1.9) MSP (version 4.2)
  • (2)空速传感器
  • (3)nginx 配置(nginx.conf)
  • (C++20) consteval立即函数
  • (done) 两个矩阵 “相似” 是什么意思?
  • (k8s中)docker netty OOM问题记录
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第30天)二叉树阶段总结
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)WLAN定义和基本架构转
  • (转)视频码率,帧率和分辨率的联系与区别
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .Net Web项目创建比较不错的参考文章
  • .NET 发展历程
  • .Net 基于MiniExcel的导入功能接口示例
  • .Net 路由处理厉害了
  • .NET/C# 使窗口永不获得焦点