利用Python和OpenCV将图像灰度图转为3D图并显示

利用Python和OpenCV将图像灰度图转为3D图并显示

写文章的时候为了比较不同滤波器对灰度图像的滤波效果,需要将灰度图进行3D可视化,在网上搜索了很久,只搜到了matlab版本的,没有见到Python相关资源,然后就写了一下,和大家分享一下

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


if __name__ == "__main__":
    img_path = r"./2.jpg"
    img_gray = cv2.imread(img_path, 0)

    # img_gray = cv2.resize(img_bgr, (224, 224))

    Y = np.arange(0, np.shape(img_gray)[0], 1)
    X = np.arange(0, np.shape(img_gray)[1], 1)
    X, Y = np.meshgrid(X, Y)
    fig = plt.figure()
    ax = plt.axes(projection="3d")
    ax.plot_surface(X, Y, img_gray, cmap='gist_rainbow')  #  cmap='hot'
    plt.show()

from mpl_toolkits.mplot3d import Axes3D

一定要加上,不加的话会报错

Traceback (most recent call last):
  File "D:\Anaconda\lib\site-packages\matplotlib\projections\__init__.py", line 58, in get_projection_class
    return projection_registry.get_projection_class(projection)
  File "D:\Anaconda\lib\site-packages\matplotlib\projections\__init__.py", line 25, in get_projection_class
    return self._all_projection_types[name]
KeyError: '3d'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:/Carrot_crack_Detection_segmentation/ceshi.py", line 17, in <module>
    ax = plt.axes(projection="3d")
  File "D:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 877, in axes
    return subplot(111, **kwargs)
  File "D:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 1076, in subplot
    a = fig.add_subplot(*args, **kwargs)
  File "D:\Anaconda\lib\site-packages\matplotlib\figure.py", line 1396, in add_subplot
    self._process_projection_requirements(*args, **kwargs)
  File "D:\Anaconda\lib\site-packages\matplotlib\figure.py", line 1120, in _process_projection_requirements
    projection_class = projections.get_projection_class(projection)
  File "D:\Anaconda\lib\site-packages\matplotlib\projections\__init__.py", line 60, in get_projection_class
    raise ValueError("Unknown projection %r" % projection)
ValueError: Unknown projection '3d'

Process finished with exit code 1

运行结果
cmap=‘hot’模式下的效果在这里插入图片描述
cmap='gist_rainbow’下的显示效果在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值