【3】基于OpenCV—Python绘制图片三维空间显示图
1 绘制思路
(1)彩色图片转化为灰度图片;
(2)灰度图片装换为矩阵;
(3)matplot将矩阵在三维空间中绘制出来;
(4)x:图片宽度;y:图片高度;z:灰度值
2绘制代码
# -*- coding: utf-8 -*-
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatterfig = plt.figure(figsize=(16,12))
ax = fig.gca(projection="3d")img = cv.imread("01.jpg") # 修改图片位置
img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
imgd = np.array(img) # image类 转 numpy# 准备数据
sp = img.shape
h = int(sp[0])#height(rows) of image
w = int(sp[1])#width(colums) of imagex = np.arange(0,w,1)
y = np.arange(0,h,1)
x,y = np.meshgrid(x,y)
z = imgd
surf = ax.plot_surface(x, y, z, cmap=cm.jet) # cmap指color map
#surf = ax.plot_surface(x, y, z, cmap=cm.rainbow) # cmap指color map# 自定义z轴
ax.set_zlim(-10, 255)
ax.zaxis.set_major_locator(LinearLocator(10)) # z轴网格线的疏密,刻度的疏密,20表示刻度的个数
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) # 将z的value字符串转为float,保留2位小数# 设置坐标轴的label和标题
ax.set_xlabel('x', size=15)
ax.set_ylabel('y', size=15)
ax.set_zlabel('z', size=15)
ax.set_title("Surface plot", weight='bold', size=20)# 添加右侧的色卡条
fig.colorbar(surf, shrink=0.6, aspect=8) # shrink表示整体收缩比例,aspect仅对bar的宽度有影响,aspect值越大,bar越窄
plt.show()
**
3 colormap 设置
**
colormap参考网址:https://blog.csdn.net/Mr_Cat123/article/details/78638491
本文参考参考网址:https://blog.csdn.net/yefcion/article/details/80883605
**
4 效果图展示
**
【3】基于OpenCV—Python绘制图片三维空间显示图相关推荐
- 基于 OpenCV + Python 的人脸识别上课签到系统
目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...
- OpenCV+Python 彩色图片的 BGR、灰度图、HSV分量图显示的程序
OpenCV+Python 彩色图片的 BGR.灰度图.HSV分量图显示的程序 介绍 OpenCV+Python 使用openCV中的split()函数和 cvtColor()函数提取一张彩色图片的B ...
- OpenCV python 彩色图片的三通道
OpenCV python 彩色图片的三通道 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 目的:理解彩色图片的三 ...
- Python基于opencv “三维”旋转图片,解决日常小问题
背景 前段时间因为要办理一些事情,需要家里人拍 户口本首页 和 个人所在页的照片用来打印,家里父亲已经年过六旬,能学会玩微信已经实属不易,让父亲用手机拍出很正的图片有点太难,户口本首页拍了有5张以上, ...
- (OpenCV+Python)--图片局部区域像素值处理(改进版)
上一个版本看这里:<Python+OpenCV实现[图片]局部区域像素值处理> 上个版本的代码虽然实现了我需要的功能,但还是走了很多弯路,我意识到图片本就是数组形式,对于8位灰度图,通道数 ...
- 基于opencv+python实现数独
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 效果展示图 一.引入库 二.训练KNN模型 三.读取数独图片并提取轮廓 四.提取9*9的81小方格 五.解析数独数字 ...
- 基于opencv+python的角度测量
import cv2 # 导入opencv import math # 导入math库,计算角度时需要path = './Angle Finder/background.png' # 测试样图相对路径 ...
- 基于Opencv+python的车流量检测项目
目录 项目介绍 整体流程 调试环境 项目流程 1.预处理 2.汽车识别--去背景算法(KNN/MOG2) 3.统计车流量数目 结尾 源代码 测试视频资料 流程图 项目介绍 本次项目主要采用了传统视觉的 ...
- 基于opencv+python的车道检测技术
针对自动驾驶系统的实际需求,我们需要一种能够兼顾速度.不同环境下高检测成功率和鲁棒性的车道识别算法.首先,因为停车场更多的是地下光线昏暗的情况需要提高车道线与周围环境的对比度,然后灰度化图像进行模糊降 ...
- 基于OPENCV的动态图片阵列显示程序
最近一直在做目标检测的项目,C++写程序真的烦,在面对大量图片显示的时候总觉得只用imshow不太好看,所以就做了这么一个可以动态显示图片阵列的程序,可以选择两种输出方式,一种是固定行列数的,一种是设 ...
最新文章
- java 汉字转拼音_推荐一款前端汉字转拼音组件工具
- Nginx源码研究三:Epoll在NGINX中的使用
- SQLyog连接Mysql8.0提示 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
- 主题简介 ASP .NET
- underscorejs-groupBy学习
- python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精...
- ubuntu linux本地源,如何制作UbuntuLinux操作系统的本地源?
- springmvc+json 前后台数据交互
- MVC简单介绍(转)
- doc转换html软件,Doc文件格式转换工具(CoolUtils Total Doc Converter)
- linux ss命令详解
- android webview richeditor,GitHub - IllegalCreed/react-native-webview-richeditor
- rf接口自动化之结果校验
- Diamond软件的使用(5)--建立Modelsim仿真环境
- MySQL Mac 终端环境变量配置
- CUDA C/C++ 教程一:加速应用程序
- 每个人都会经历一段迷茫
- iOS模拟各种网络状态
- 七彩虹将星X15 AT评测
- 【P4论文分享】基于P4的可编程数据平面研究及其应用