在Python中调用imageJ开发

news2024/11/25 1:52:57

文章目录

  • 一、在ImageJ中进行Python开发
  • 二、在Python中调用imageJ开发
    • 2.1、简介
    • 2.2、环境配置
    • 2.3、测试一
    • 2.4、测试二


Python + imageJ 解决方案,采坑记录

一、在ImageJ中进行Python开发

原生ImageJ仅支持JS脚本(JAVAScript),而ImageJ的衍生版本Fiji支持Python脚本编程,所以这里的ImageJ实际是Fiji。

  • 第一步:Fiji官网下载(免费):https://fiji.sc/
  • 第二步:安装Fiji
  • 第三步:打开Fiji
  • 第四步:ImageJ的Python脚本编程

在这里插入图片描述

二、在Python中调用imageJ开发

2.1、简介

PyImageJ:ImageJ2 的 Python 包装器。

  • 功能:提供了一组包装函数用于ImageJ2 和 Python 之间的集成。它还支持原始的ImageJ API 和数据结构。
  • 优点:将 ImageJ 和 ImageJ2 与 Python 软件生态系统中提供的其他工具结合起来,包括 NumPy、SciPy、scikit-image、CellProfiler、OpenCV、ITK等等。

2.2、环境配置

  • 安装
    PyImageJ: Python wrapper for ImageJ2
    步骤1:pip install imagej
    步骤2:pip install pyimagej
    步骤3:pip install Maven(暂时不需要)
  • Java环境配置

BUG提示:JVMNotFoundException: No JVM shared library file (jvm.dll) found.
BUG翻译:在系统中找不到Java虚拟机 (JVM) 的共享库文件。

在这里插入图片描述
解决方案:设置JAVA_HOME环境变量,该变量指向Java安装目录。

  • (1)在Windows上安装Java: Oracle JDK 下载页面,选择并下载适用于电脑的JDK版本。运行安装程序,并按照提示完成安装。
  • (2)设置环境变量:JDK8.0 环境变量的配置教程
  • (3)重新启动Python环境:设置环境变量之后,重新启动你的 Python 环境,以确保更改生效。
  • (4)检查 Java 安装版本与安装路径:
    • 在终端或命令提示符中运行java -version
    • 在终端或命令提示符中运行echo %JAVA_HOME%

在这里插入图片描述 在这里插入图片描述

2.3、测试一

在这里插入图片描述

# Create an ImageJ2 gateway with the newest available version of ImageJ2.
import imagej
ij = imagej.init()

# Load an image.
image_url = 'https://imagej.net/images/clown.jpg'
jimage = ij.io().open(image_url)

# Convert the image from ImageJ2 to xarray, a package that adds
# labeled datasets to numpy (http://xarray.pydata.org/en/stable/).
image = ij.py.from_java(jimage)

# Display the image (backed by matplotlib).
ij.py.show(image, cmap='gray')

2.4、测试二

在这里插入图片描述

写法一:

import imagej

ij = imagej.init()  # (1)初始化ImageJ
# (2)使用三重引号的字符串定义宏代码,以提高可读性
macro_code = """
    open("C:/Users/Administrator/Desktop/py/test/image.tif");
    selectImage("image.tif");
    //run("Brightness/Contrast...");
    run("Enhance Contrast", "saturated=0.35");
    setOption("ScaleConversions", true);
    run("8-bit");
    saveAs("Tiff", "C:/Users/Administrator/Desktop/py/test/image8.tif");
"""
ij.py.run_macro(macro_code)  # (3)运行宏

写法二:

import imagej
import os

ij = imagej.init()  # 初始化ImageJ

input_downsample = r"D:/BIRDS/_test_image/_coach_path_561temp/registration/coarse/downSampleImage.tif"
output_downsample = r"D:/BIRDS/_test_image/_coach_path_561temp/registration/coarse/downSampleImage1.tif"
file_name = os.path.basename(input_downsample)
#######################################################################
# 使用三重引号的字符串定义宏代码,以提高可读性
macro_code = f"""
    open("{input_downsample}");
    selectImage("{file_name}");
    //run("Brightness/Contrast...");
    run("Enhance Contrast", "saturated=0.35");
    setOption("ScaleConversions", true);
    run("8-bit");
    saveAs("Tiff", "{output_downsample}");
"""
ij.py.run_macro(macro_code)  # 运行宏

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

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

相关文章

milvus采坑一:启动服务就会挂掉

原因一 硬盘满了,Eric数据文件存储在硬盘上,当硬盘不足,它就会启动后就挂掉。 此时pymilvus连接一直是timeout。 解决方法:更换存储路径。

在建筑设计方面3DMax和Maya哪一个更好?

对于建筑设计可视化工具,有许多渲染程序提供了一套非常复杂的工具,使专业人员能够做到最好。ArchViz工具对建筑师和设计师来说非常重要,因为它们可以让他们更准确地识别设计发展阶段的问题,并更有效地与客户交流设计理念。 在今天…

AlmaLinux download

前言 一个开源的、社区拥有和管理的、永远免费的企业级Linux发行版,专注于长期稳定性,提供一个健壮的生产级平台。AlmaLinux操作系统是1:1二进制兼容RHEL和pre-Stream CentOS。 AlmaLinux download VersionAlmaLinux downloadAlmaLinux backup阿里云…

代码随想录算法训练营第四十一天【动态规划part03】 | 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路: 动规五部曲 确定dp数组及其下标含义:dp[i] 拆分i,可以得到的最大乘积为dp[i]确定递推公式:从1开始遍…

DAY03 类与对象

概述 对象:真实存在的事物 类: 多个对象抽取其共同点形成的概念 静态特征提取出的概念称为成员变量, 又名属性 动态特征提取出的概念称为成员函数, 又名方法 类与对象的关系 在代码中先有类后有对象 一个类可以有多个对象 多个对象可以属于同一个…

同城跑腿服务预约小程序的作用是什么

随着生活质量逐渐提升,围绕人们生活的行业或产品非常多,同时互联网赋能下,也出现了很多便捷人们日常消费的场景,如外卖服务、快递服务等。 跑腿仅依赖微信私聊及电话预约是很低效且容易出错及造成极大工作压力的,同时…

深度学习人体跌倒检测 -yolo 机器视觉 opencv python 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…

内网穿透的应用-如何在Docker中部署MinIO服务并结合内网穿透实现公网访问本地管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…

企业微信机器人定时发送图文信息,后续无需人工操作

企业微信群机器人是企业微信的内置功能,可以理解为是一个群提醒通知工具,接收数据并自动发送信息到企业微信群中。 数环通实现打通定时器和企业微信机器人的对接,定时执行自动化流程,无需人工干预,实现工作流程自动化&…

大型 APP 的性能优化思路

做客户端开发都基本都做过性能优化,比如提升自己所负责的业务的速度或流畅性,优化内存占用等等。但是大部分开发者所做的性能优化可能都是针对中小型 APP 的,大型 APP 的性能优化经验并不会太多,毕竟大型 APP 就只有那么几个&…

UE 材质,如何只取0~1之间的值,其余值抛弃

假如0~1,floor为0,abs为0,Saturate为0,1-x为1,很好 假如1~2,floor为1,abs为1,Saturate为1,1-x为0,很好 假如2~3,floor为2,abs为2&am…

拼多多API接口,百亿补贴商品详情接口系列

随着互联网的快速发展,电子商务在日常生活中扮演着越来越重要的角色。拼多多,作为中国领先的社交电商巨头,以其独特的商业模式和创新的API接口,为广大开发者提供了一个全新的电商生态系统。本文将详细介绍拼多多的API接口及其应用…

打印工具HandyPrint Pro Mac中文版软件特点

HandyPrint Pro Mac是一款打印工具,它支持AIrPrint协议,可以让用户在iPhone、iPad、iPod等设备上进行打印操作,只需要将这些设备连接到Mac电脑的WiFi网络中即可实现打印功能。 ​ HandyPrint Pro Mac软件特点 简单易用:用户只需…

汽车级全保护型六路半桥驱动器NCV7708FDWR2G 原理、参数及应用

NCV7708FDWR2G 是一款全保护型六路半桥驱动器,特别适用于汽车和工业运动控制应用。六个高压侧和低压侧驱动器可自由配置,也可单独控制。因此可实现高压侧、低压侧和 H 桥控制。H 桥控制提供正向、逆向、制动和高阻抗状态。驱动器通过标准 SPI 接口进行控…

极速进化,融合“新“生 | StarRocks Summit 2023 技术交流峰会圆满落幕

2023年11月17日,由 StarRocks 社区发起、镜舟科技主办的 StarRocks 年度大型技术交流峰会 StarRocks Summit 2023 在上海成功举行。 本次峰会以「极速进化,融合"新"生」为主题,40余场分享演讲在全天密集开展,来自平安银…

软件项目可行性研究报告

一、可行性研究报告 1.1编写目的 1.2项目背景 1.3定义 1.4参考资料 2.可行性研究的前提 2.1要求 2.2目标 2.3条件、假定和限制 2.4可行性研究方法 2.5决定可行性的主要因素 3.对现有系统的分析 3.1处理流程和数据流程 3.2工作负荷 3.3费用…

阿里云ack集群升级流程

最近一直在升级过期的ack 集群版本 从1.22升级到1.24.。 参考: 升级流程、方式及所需时间

LeetCode207.课程表

看完题我就想,这不就是进程里面的死锁问题嘛,进程1等进程2释放锁,进程2等进程3释放锁,进程3等进程1释放锁,这就造成了死锁。或者是spring中的循环依赖问题,BeanA的初始化需要初始化一个BeanB,Be…

php 时区查看和设置

php的时区&#xff0c;关系到相关时间函数的结果 其他相关&#xff1a; linux时区设置&#xff1a;链接 pgsql时区设置&#xff1a; 一、查看可以用的时区列表 新建一个php文件&#xff0c;输入下面程序即可 <?php echo "<pre>"; var_dump(timezone_id…

时间序列预测(8) — Informer模型原理

目录 0 摘要 1 引言 2 定义 3 方法 3.1 高效的自注意力机制 3.2 稀疏度度量 3.3 ProbSparse稀疏自注意力机制 3.4 Encoder编码器 3.5 Decoder解码 参考视频&#xff1a;Informer原理及代码解析_哔哩哔哩_bilibili 0 摘要 长序列时间序列预测&#xff08;LSTF&#x…