读取三通道图片的像素,并在对应像素位置显示出

下面的3D图像是一个平面的原因是,这个对同一张图片进行像素差的计算,
若换成其他图片,则可出现下面图片的情况
ax1.contourf是画出相对于那个方向上的等高线分布

import cv2
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d
import osdef chang_size(img, size=[416, 128]):  # 修改图片大小并保存到图片文件夹下,路径无中文dir_name, suffix = os.path.splitext(img)save_img_name = dir_name + '_1' + suffiximg_arr = cv2.imread(img)img_arr = cv2.resize(img_arr, size)cv2.imwrite(save_img_name, img_arr)def getOne_wh_pixvalue(img):  # 单张图片的信息img_arr = cv2.imread(img)  # 读取的是np.array 可直接对各个维度加h, w, c = img_arr.shapeimg_b = img_arr[:, :, 0].astype(np.int16)img_g = img_arr[:, :, 1].astype(np.int16)img_r = img_arr[:, :, 2].astype(np.int16)img_sum = img_b + img_g + img_rreturn h, w, img_sum, img_b, img_g, img_rdef getTwo_difvalue(*arg):  # 两张三通道图片的每个像素的差if len(arg) != 2:print('不是两个图片')exit(0)img_inf = []for img in arg:try:h, w, img_sum, img_b, img_g, img_r = getOne_wh_pixvalue(img)except:print('读取图片像素值出现错误')img_inf.append([h, w, img_sum, img_b, img_g, img_r])if img_inf[0][:2] == img_inf[1][:2]:return img_inf[0][0], img_inf[0][1], abs(img_inf[0][2] - img_inf[1][2])else:print('size is not the same!!')exit(0)return Nonedef showOne_orTwo_pixdif(*arg):# print(arg)fig = plt.figure()ax1 = fig.add_subplot(111, projection='3d')if len(arg) == 1:print('一张图片')h, w, img_sum, img_b, _, _ = getOne_wh_pixvalue(arg[0])elif len(arg) == 2:print('两张图片')h, w, img_sum = getTwo_difvalue(*arg)else:print('图片参数超过2')exit(0)x = np.arange(0, w, 1)y = np.arange(0, h, 1)X, Y = np.meshgrid(x, y)print(Y.shape)print(img_sum.shape)Z = np.zeros(Y.shape, dtype=np.uint16)  # 新建一个元素全为0单shape和X,Y都一样的zfor i in range(Y.shape[0]):for j in range(Y.shape[1]):Z[i][j] = img_sum[i][j]ax1.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=plt.get_cmap('rainbow'))# 绘制等高线,这个映射必须是等高线方向有差值,cmap/cm = color map# ax1.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))plt.show()img = 'imgs/4_6.png'
img1 = 'imgs/4_6.png'
showOne_orTwo_pixdif(img, img1)
# chang_size(img1)


一张车牌的像素


从底部向上看,可得到像素轮廓和车牌字符很相似

大概就是是这个样子

plt,cv2图片像素值的立体显示相关推荐

  1. python修改图片,Python之修改图片像素值的方法

    在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片 # -*- coding:utf8 -*- import os from PIL ...

  2. python降低图片分辨率_Python之修改图片像素值的方法

    在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片 # -*- coding:utf8 -*- import os from PIL ...

  3. Python修改图片像素值(变彩色为黑白)

    如何使用python将彩图变为黑白图? 以RGB图片为例,其色彩展现是依靠这像素点上的像素值,正是这些数值使图片绚烂多彩,同时,我们也知道,像素值的范围为0-255,其中0为黑色,255为白色,那么我 ...

  4. 【Unity】刮刮乐效果(擦除图片像素值)

    实现类似刮刮乐效果,擦除图片指定像素值(修改图片Alfa通道) 参考Unity刮刮乐工程源码的实现原理,对实现方式有一些调整 这里RawImage需要保持原图大小,不能缩放,不然坐标计算会有偏差 us ...

  5. OpenCV 数组存储图片像素值,便于后期图像处理

    刚开始接触到OpenCV,本身是想学借助OpenCV的库来进行图像处理学习的,后来发现OpenCV将所有的东西都集成起来了,对于打算学习图像处理来说这样反而不是什么好事: 在我看来,图像处理基本基于对 ...

  6. Python之修改图片像素值

    在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片 # -*- coding:utf8 -*- import osfrom PIL ...

  7. Python改变图片像素值

    1.python 处理图片像素点 2.用python简单处理图片(4):图像中的像素访问 3.Python-Image 基本的图像处理操作

  8. OpenCV修改图片像素值增加、减少

    <OpenCV系列教程> 项目位置:OpenCV-Sample 代码位置:11-ImagePixelsBeChange.py import cv2 import numpy as npim ...

  9. Opencv读取图片像素值

    #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...

最新文章

  1. 基于Javaweb实现实验室设备管理系统
  2. 如何避免模块间的CSS冲突
  3. 初学Python——面向对象编程
  4. SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
  5. android menu分割线,给 NavigationView 的Menu的分割线 设置高度和颜色
  6. shell 参数,shell与Java 交互参数
  7. c++ 写x64汇编 5参数_第9篇-C/C++ x86_64的函数栈
  8. 全局唯一标识符 (GUID)
  9. BBS论坛系统需求说明书
  10. 机器人工程师入门知识框架(思维导图)
  11. Ubuntu server 20.4 配置静态ip
  12. OMNeT学习之TicToc2-7详解
  13. 在线文档 - 腾讯文档
  14. Unity ShaderLab Stencil Comp 枚举的对应数值
  15. C++在终端、文件中就地覆盖输出的方法
  16. halconc#软件收费吗_没事别想不开做Halcon机器视觉工程师
  17. 失物招领小程序_上线了!| 失物招领平台全新上线!
  18. VS coda C++、python运行与Dbug配置
  19. Java程序员兼职平台推荐
  20. Hive 实战(2)--hive分区分桶实战

热门文章

  1. Mozilla的 MDN 学习区Web开发
  2. 计算机算法设计与分析 大整数乘法
  3. 蓝桥杯 2016年C语言组大学B组 C/C++
  4. Java 1.4 大数值问题
  5. ## CSP 201609-2 火车购票购买,C语言版(90分版)
  6. 《Python学习笔记》——南溪的python编程笔记
  7. 目标检测——域适应的学习笔记
  8. 人工智能——自动驾驶仿真软件
  9. python 字典转对象
  10. ubuntu 安装、配置、卸载Anaconda3