背景
imaris 本体没有提供设置特定角度来统一视角的功能
如果不同文件都想要同一个视角,就很麻烦
简单了解了下imaris的插件开发(叫做XTensions)
迅速用matlab写了一个app,可以与imaris连接,设置特定角度,并可以快速复制视角和粘贴视角
备注:
写完之后,才发现其实imaris自带一个Camera Manager插件,也有复制位置、粘贴位置以及调制特定视角的功能(看来官方也知道这个问题,不明白为什么不加这个功能),但是这个插件有点难用:
要么安装matlab 特定版本的runtime(因为插件是用特定run time编译的,只能用特定run time运行,就算是同一个版本,比如matlab 2023a的9.14版本runtime,下载matlab官方最新的update8 runtime还有问题,必须用imaris之前打包插件的那个版本)。imaris下载runtime 贼慢,下载不下来,就放弃了。
要么使用imaris的Camera Manager的.m插件版本的,不用安装特定runtime,但是每次打开都会另打开一个matlab engine,太卡了,官方的Camera manager是把复制粘贴位置功能和调制特定视角功能做成两个按钮的,这意味着两个功能都用,就要打开两个matlab engine,不太能接受。
反正我后台平常也开着matlab,写成一个外部的app,后面如果要加其他功能,其实也更简单。
软件功能
Github:Achuan-2/imarisCameraManger

- 连接imaris:选择imaris的安装文件夹,进行连接

- 特定角度显示:设置X、Y、Z的旋转角度,来达到特定角度显示的效果

-
复制和粘贴位置:快速让不同文件的显示视角一样
复制位置

粘贴位置,让不同文件的显示视角一样

如何安装
下载Imaris Camera Manager.mlappinstall
,在matlab打开安装即可,之后会在matlab顶栏显示

或者也可以直接运行,ImarisCameraManager.mlapp
或者ImarisCameraManager_exported.m
开发笔记:开发一个imaris插件的三种方案
可以直接在imaris调用的matlab插件开发有两种方式,
一个是runtime版本,打包为exe,使用runtime来打开这个exe,缺点是必须安装打包这个exe时这个特定的runtime,否则运行不了
另一种是.m版本,相当于是直接使用当前安装的matlab来启动.m文件,缺点是,每次点开一个插件,就会打开一个matlab会话,使用起来很不方便
此外,还有一种方式,就是直接在当前的matlab软件内,连接imaris,对我而言,这种方式更舒服,后面要添加新功能,也自由,可以使用app designer来做app
开发笔记:外部matlab如何连接imaris
配置
首先先添加imaris的XT\matlab到路径
1 | addpath('C:\Program Files\Bitplane\Imaris x64 10.0.0\XT\matlab') |
并添加ImarisLib.jar
1 | javaaddpath ImarisLib.jar; |
连接imaris的代码
1 | vImarisLib = ImarisLib; |
复制当前物体的位置
1 |
|
粘贴当前问题的位置
1 | viewer.SetOrientationQuaternion(quaternion); |
fit显示
1 | vImarisApplication.GetSurpassCamera.Fit; |
reset视角
1 | defaultQuaternion = [1, 0, 0, 0]; % Identity quaternion |
设置特定旋转角度
1 | yaw = deg2rad(-80); % Rotation around Z-axis (in radians):上下颠倒 |