当前位置: 首页 > article >正文

在Python中调用imageJ开发

文章目录

  • 一、在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.kler.cn/a/137349.html

相关文章:

  • 复习打卡大数据篇——Hadoop HDFS 02
  • 【Datawhale AI 冬令营】如何动手微调出自己的大模型
  • 关于如何做技术文档
  • 网卡 TSO(提示发送端性能), LRO, GRO (提升接收端性能)功能
  • 深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
  • XXE靶机攻略
  • 【算法基础】高精度运算
  • 虾皮网同行数据丨虾皮数据工具-知虾:监控竞争对手数据的利器
  • uniapp heckbox-group实现多选
  • postgresql 行转列的例子
  • 请收藏!2023年全栈开发人员实战进阶指南终极版
  • 去除IDEA中代码的波浪线(黄色警示线)
  • 构建和应用卡尔曼滤波器 (KF)--扩展卡尔曼滤波器 (EKF)
  • 华为云cce中环境变量的使用
  • npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)
  • jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装
  • CentOS8部署Skywalking(非容器方式)
  • 福州大学《嵌入式系统综合设计》实验三:多媒体开发基础编程
  • Java爬虫框架下代理使用中的TCP连接池问题及解决方案
  • 「MobileNet V3」70 个犬种的图片分类
  • 01-了解微服务架构的演变过程和微服务技术栈
  • 图论 2023.11.20
  • C++中的内存管理
  • 网络连接Android设备
  • 记录一个简单的博客系统该开发过程
  • 2311rust,1.31版本更新