使用 Python脚本在3DMAX中加载图像和读取图像中的像素值

如何使用Python在3dmax中加载和显示图像文件?我们先看下面的代码:

*测试的3dmax文件和图像文件位于同一目录中。

from MaxPlus import BitmapManagerimage_file_path = r'je_gray_02_4k.exr'bmp_storage = MaxPlus.Factory.CreateStorage(17)bmp_info = bmp_storage.GetBitmapInfo()bmp_info.SetName(image_file_path)bmp = BitmapManager.Load(bmp_info)bmp.Display()

打开3dmax,点击3dmax主菜单->脚本->新建脚本,将上面的Python代码复制粘贴到MAXScript脚本编辑器窗口中,点击脚本编辑器窗口上面的“语言”菜单,选择“Python”。然后,同时按下“Ctrl+e”键执行Python脚本,运行结果如下图:    

下面一步一步解释上面的脚本:

1.导入加载图像文件所需的BitmapManager类。

2.设置包含图像文件路径的变量

3.呼叫MaxPlus。Factory类的CreateStorage方法来启动BitmapStorage对象。

这太尴尬了。。

很可能我只是没有找到正确的方法。。

除了启动BitmapStorage对象并引用其BitmapInfo对象外,貌似找不到任何其他方法来独立启动加载图像所需的BitmapInfo。(BitmapInfo类没有构造函数。)

4.获取对BitmapStorage对象中包含的BitmapInfo对象的引用。

5.设置BitmapInfo对象的名称属性(完整文件路径)。

6.加载图像。

7.在3dmax的图像查看器窗口中显示图像。

下面是BitmapStorage格式常量容器类的示例代码:

class BitmapTypes(object):BMM_NO_TYPE = 0 # Not allocated yetBMM_LINE_ART = 1 # 1-bit monochrome imageBMM_PALETTED = 2 # 8-bit paletted image. Each pixel value is an index into the color table.BMM_GRAY_8 = 3 # 8-bit grayscale bitmap.BMM_GRAY_16 = 4 # 16-bit grayscale bitmap.BMM_TRUE_16 = 5 # 16-bit true color image.BMM_TRUE_32 = 6 # 32-bit color: 8 bits each for Red, Green, Blue, and Alpha.    BMM_TRUE_64 = 7 # 64-bit color: 16 bits each for Red, Green, Blue, and Alpha.BMM_TRUE_24 = 8 # 24-bit color: 8 bits each for Red, Green, and Blue. Cannot be written to.BMM_TRUE_48 = 9 # 48-bit color: 16 bits each for Red, Green, and Blue. Cannot be written to.BMM_YUV_422 = 10 # This is the YUV format - CCIR 601. Cannot be written to.BMM_BMP_4 = 11 # Windows BMP 16-bit color bitmap. Cannot be written to.BMM_PAD_24 = 12 # Padded 24-bit (in a 32 bit register). Cannot be written to.BMM_LOGLUV_32 = 13 BMM_LOGLUV_24 = 14BMM_LOGLUV_24A = 15 BMM_REALPIX_32 = 16 # The 'Real Pixel' format.BMM_FLOAT_RGBA_32 = 17 # 32-bit floating-point per component (non-compressed),RGB with or without alphaBMM_FLOAT_GRAY_32 = 18 # 32-bit floating-point (non-compressed), monochrome/grayscaleBMM_FLOAT_RGB_32 = 19BMM_FLOAT_A_32 = 20

如何从图像中读取像素值?看下面的Python代码:

bmp_storage = bmp.GetStorage()hdr_pixel = bmp_storage.GetHDRPixel(3000,200)print(hdr_pixel)

将这段代码追加到之前代码的末尾,完整代码如下:

from MaxPlus import BitmapManagerimage_file_path = r'je_gray_02_4k.exr'bmp_storage = MaxPlus.Factory.CreateStorage(17)bmp_info = bmp_storage.GetBitmapInfo()bmp_info.SetName(image_file_path)bmp = BitmapManager.Load(bmp_info)bmp.Display()#reading pixelsbmp_storage = bmp.GetStorage()hdr_pixel = bmp_storage.GetHDRPixel(3000,200)print(hdr_pixel)

执行Python代码,结果如下:    

代码释义:

1.获取对位图的BitmapStorage对象的引用。

*在这种情况下,重写我们之前创建的BitmapStorage对象只是为了获得BitmapInfo对象。。

2.读取像素值。

提示:复制和粘贴此示例中的脚本时,请注意格式的缩进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/159583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索数字孪生的潜力:五个最有前景的行业

数字孪生技术正在引领一场新的工业革命,其潜力正在被全球范围内的行业所认识和利用。在未来,数字孪生技术将在许多行业中发挥重要作用,本文带大家共同解析未来数字孪生技术五个最有发展前景的行业。 1.制造业 数字孪生技术可以帮助制造商模…

Leetcode——169 多数元素

我的答案 class Solution {public int majorityElement(int[] nums) {int len nums.length;Arrays.sort(nums);int count 1;int res 0;if(len 1){return nums[0];}for(int i0; i<len-1; i){if(nums[i]nums[i1]){count;}else{count 1;}if(count>len/2){res nums[i]…

springboot post添加URL添加参数

出现 MissingServletRequestParameterException: Required String parameter pageNumber is not present 异常的原因是在请求中没有提供名为 pageNumber 的参数。 请确保发送 POST 请求时&#xff0c;在请求的 URL 或请求体中提供了名为 pageNumber 的参数&#xff0c;以满足方…

【问题定位】通过看Mybatis源码解决系统问题

开发需求好好的&#xff0c;运维同事突然发现了一个问题&#xff0c;某个任务的详情页面加载不出来。看日志&#xff0c;系统在进行查询操作的时候抛出空指针异常。感觉是Mybatis内部异常&#xff0c;所以就跟踪源码看下Mybatis运行到哪一步报错的。 DefaultSqlSession#select…

MySQL大表设计

存储大规模数据集需要仔细设计数据库模式和索引&#xff0c;以便能够高效地支持各种查询操作。在面对数亿条数据&#xff0c;每条数据包含数百个字段的情况下&#xff0c;以下是我能想到的在设计数据库的时候需要注意的内容&#xff0c;不足之处欢迎各位在评论区批评指正&#…

2023年亚太杯数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法&#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

零成本搭建微信公众号自助查券返利机器人教程

零成本搭建微信公众号自助查券返利机器人教程 随着电商行业的快速发展&#xff0c;越来越多的消费者开始关注如何通过优惠券和返利来省钱购物。而微信公众号自助查券返利机器人的出现&#xff0c;为消费者提供了更加便捷的渠道来查找和获取优惠信息。本文将结合微赚淘客系统&a…

PostgreSQL导出表结构带注释

我们在平时开发过程中&#xff0c;经常会在字段的注释中&#xff0c;加上中文&#xff0c;解释字段的相关含义&#xff0c;也可以避免时间太久忘记这个字段代表什么&#xff0c;毕竟英文水平不好。我们可能要经常整理数据库表结构&#xff0c;提供他人去收集数据&#xff0c;但…

Doris中的Rollup(十五)

ROLLUP 在多维分析中是“上卷”的意思&#xff0c;即将数据按某种指定的粒度进行进一步聚合。 在 Doris 中&#xff0c;我们将用户通过建表语句创建出来的表称为 Base 表&#xff08;Base Table&#xff09;。Base 表中保存着按用户建表语句指定的方式存储的基础数据。 在 Ba…

iOS 17 跳转到系统设置页面(蓝牙、wifi、键盘、壁纸、铃声、iCloud等等)

最新iOS系统设置和路径对照表 名称路径aboutApp-prefs:General&pathAboutautoLockApp-prefs:General&pathAUTOLOCKbluetoothApp-prefs:BluetoothdateTimeApp-prefs:General&pathDATE_AND_TIMEfacetimeApp-prefs:FACETIMEgeneralApp-prefs:GeneralkeyboardApp-pref…

SQLite3 数据库学习(四):Qt 数据库基础操作

参考引用 SQLite 权威指南&#xff08;第二版&#xff09;SQLite3 入门 1. 创建连接执行 sql 语句 在 Qt 中使用数据库要在工程文件中添加QT sql1.1 main.cpp #include "createsqlapp.h" #include <QApplication> #include <QSqlDatabase> #include &l…

香港高端人才通行证计划申请(包括条件)你需要知道的这些真相!

香港高端人才通行证计划申请&#xff08;包括条件&#xff09;你需要知道的这些真相&#xff01; 香港高才通计划从刚推出就带着“光速获批“的光环&#xff0c;吸引了大批高学历和高收入人士&#xff0c;后续也因它申请要求简单、明确&#xff0c;获批率高等优势&#xff0c;火…

主机dbeaver访问gitlab容器中的pg

映射5432端口- 5431:5432或者从docker客户端查看 version: 3.6 services:web:image: gitlab/gitlab-ce:latestrestart: alwayshostname: localhostenvironment:GITLAB_OMNIBUS_CONFIG: |external_url http://localhost:8929gitlab_rails[gitlab_shell_ssh_port] 2224ports:- …

【正点原子STM32连载】 第五十七章 DSP FFT实验(Julia分形)实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第五…

springboot_项目重启问题

问题描述 在做一个文件上传功能的时候&#xff0c;我获取到类路径&#xff1a; String classPath ClassUtils.getDefaultClassLoader().getResource("").getPath();此方法获取到的路径是&#xff1a;/target/classes我将文件存储到/target/classes/template/中 此…

递归结构体数组链表实现

#ifndef _MODEL_SCHEDULE_H_ #define _MODEL_SCHEDULE_H_#define MODEL_SCHEDULE_IDLE 0x00000000 #define MODEL_SCHEDULE_OCCUPY 0x5A555A55#define MODEL_SCHEDULE_NUM 10typedef struct model_schedule_linked_list_unit {int idleFlag; //资源是否被占用vo…

文心一言 VS 讯飞星火 VS chatgpt (140)-- 算法导论11.4 5题

五、用go语言&#xff0c;考虑一个装载因子为a的开放寻址散列表。找出一个非零的a值&#xff0c;使得一次不成功查找的探查期望数是一次成功查找的探查期望数的 2 倍。这两个探查期望数可以使用定理11.6 和定理 11.8 中给定的上界。 文心一言&#xff0c;代码正常运行&#xf…

springboot宠物领养系统-计算机毕设 附源码 44261

springboot宠物领养系统 摘 要 网络发布信息有其突出的优点&#xff0c;即信息量大&#xff0c;资源丰富&#xff0c;更新速度快等&#xff0c;很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领养系统&#xff0c;为宠物爱好者提供一个信息…

pyqt5 窗口调用网页高德地图kpi,进行实时地图导航

作为主项目功能的一部分&#xff0c;这部分我想单独记录下来 一&#xff0c;注册高德kpi【进行实名认证】 高德开放平台 | 高德地图API (amap.com) 二&#xff0c;申请Key 三&#xff0c;进入路径规划-API文档-开发指南-Web服务 API|高德地图API (amap.com) 找到你需要的路径…

【必读】从零开始,一步步教你安装nginx,搭建个人博客网站!

nginx搭建个人网站 Nginx是一款轻量级Web服务器、反向代理服务器以及电子邮件代理服务器&#xff0c;并且具有高并发连接处理能力和低内存消耗的特点。它也可以用于负载均衡和缓存控制等功能。 功能&#xff1a; 静态网站服务器&#xff1a;Nginx可以用来作为静态网站服务器&am…