weixin_55356465 2021-08-23 11:16 采纳率: 50%
浏览 52

Python由一张图片拉伸成浮雕三维模型如何实现?

Python由图片生成三维模型。大致流程是:图片转换成灰度图,按照灰度值大小将像素点拉伸相应的距离,生成STL格式三维模型,用于雕刻或者3D打印。
想用Python实现,能说一下大致思路吗?尤其是如何生成三维模型。

img

  • 写回答

1条回答 默认 最新

  • 程序媛一枚~ Python领域新星创作者 2021-08-23 12:42
    关注

    原图 VS 浮雕效果图如下:

    img

    img

    img

    
    # 图像浮雕效果
    
    import cv2
    import numpy as np
    
    # 读取原始图像
    img = cv2.imread('images/yl_300.jpg', 1)
    
    # 获取图像的高度和宽度
    height, width = img.shape[:2]
    
    # 图像灰度处理
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # 创建目标图像
    dstImg = np.zeros((height, width, 1), np.uint8)
    
    # 浮雕特效算法:newPixel = grayCurrentPixel - grayNextPixel + 150
    for i in range(0, height):
        for j in range(0, width - 1):
            grayCurrentPixel = int(gray[i, j])
            grayNextPixel = int(gray[i, j + 1])
            newPixel = grayCurrentPixel - grayNextPixel + 200 # 可修改200的值,浮雕效果略有不同
            if newPixel > 255:
                newPixel = 255
            if newPixel < 0:
                newPixel = 0
            dstImg[i, j] = newPixel
    
    print(img.shape)
    print(dstImg.shape)
    # 显示图像
    cv2.imshow('src', img)
    cv2.imshow('dst', dstImg)
    cv2.imwrite('images/yl_fd.jpg', dstImg)
    
    # 等待显示
    cv2.waitKey()
    cv2.destroyAllWindows()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月23日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?