在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)  # 运行宏

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯物联网竞赛_STM32L071_2_继电器控制

Stm32l071原理图: PA11与PA12连接着UNL2803 ULN2803是一种集成电路芯片,通常被用作高电压和高电流负载的驱动器。 ULN2803是一个达林顿阵列,当输入引脚(IN1至IN8)被连接到正电源时,相应的输出引脚&#xff…

大数据-计算框架选型与对比

计算框架选型与对比 一、大数据平台二、计算框架分类1.批处理架构2.实时流处理架构3.流批一体处理架构 三、计算框架关键指标1.处理模式2.可伸缩性3.消息传递3.1 至少一次(at least once)3.2 至多一次(ai most once)3.3 恰好一次&…

Redis报错:JedisConnectionException: Could not get a resource from the pool

1、问题描述: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool 2、简要分析: redis.clients.util.Pool.getResource会从JedisPool实例池中返回一个可用的redis连接。分析源码可知JedisPool 继承了 r…

【git】使用ssh

前言 git之前一直使用https,因为很方便随时随地都可以用。最近把代码托管到GitHub,使用https就使用不了。后面听同事说GitHub使用ssh是没问题的,就想着尝试一下。 git ssh配置 设置用户名和邮箱 git config --global use.name username g…

FFmpeg常用命令讲解及实战二

文章目录 前言一、ffmpeg 常用命令1、ffmpeg 的封装转换2、ffmpeg 的编转码3、ffmpeg 的基本编转码原理 二、ffprobe 常用参数1、show_format2、show_frames3、show_streams4、print_format5、select_streams 三、ffplay 的常用命令1、ffplay 常用参数2、ffplay 高级参数3、ffp…

教你看现货黄金实时报价

现货黄金投资市场上的交易软件众多,很多人不知道选择什么软件好,但选择主流软件MT4,基本就可以满足投资者不同的需求。本文为大家讲讲,为什么有那么多的投资者,都选择通过MT4获取实时的行情报价。 现货黄金市场波动激烈…

什么是网络爬虫技术?它的重要用途有哪些?

网络爬虫(Web Crawler)是一种自动化的网页浏览程序,能够根据一定的规则和算法,从互联网上抓取和收集数据。网络爬虫技术是随着互联网的发展而逐渐成熟的一种技术,它在搜索引擎、数据挖掘、信息处理等领域发挥着越来越重…

【MySQL】子查询

文章目录 子查询IN运算符子查询 VS 连接ALL关键字ANY关键字相关子查询 !EXISTS运算符select子句中的子查询from子句中的子查询 子查询 获取价格大于id为3的货物的商品 用到了内查询,获取id为3的商品的单价,把结构传给外查询 在where子句中编写子查询&am…

导数、方向导数、梯度方向、梯度

导数:自变量改变一定量时(大于或小于0),因变量改变多少 方向导数:限定在某一个方向上,自变量改变一定量时(大于0),因变量改变多少 梯度方向:方向导数最大的…

Java实现王者荣耀小游戏

主要功能 键盘W,A,S,D键:控制玩家上下左右移动。按钮一:控制英雄发射一个矩形攻击红方小兵。按钮控制英雄发射魅惑技能,伤害小兵并让小兵停止移动。技能三:攻击多个敌人并让小兵停止移动。普攻:对小兵造成基础伤害。小…

2023年最新PyCharm环境搭建教程(含Python下载安装)

文章目录 写在前面PythonPython简介Python生态圈Python下载安装 PyCharmPyCharm简介PyCharm下载安装PyCharm环境搭建 写在后面 写在前面 最近博主收到了好多小伙伴的吐槽称不会下载安装python,博主听到后非常的扎心,经过博主几天的熬夜加班,…

网络安全如何自学?

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

Nginx环境搭建:安装与卸载

目录 一、卸载 二、安装 注:如果直接使用yum安装nginx,则默认安装路径为:/usr/share/nginx/ 下面这种方式我们是指定了安装目录 一、卸载 因为我之前的虚拟机上面已经有了nginx服务,所以这里可以先介绍一下nginx的卸载方法&a…

靠这份求职指南找工作,稳了!

大家好,我是鱼皮。为了帮助朋友们更好的准备秋招,我们精心汇总整理了 编程导航星球 内鱼友反馈的 200 多个高频求职问题和 150 多篇面经、以及最新秋招企业投递信息表,解答大家的求职困惑。 一、最新秋招投递信息表 目前已汇总整理了 600 多家…

佳易王羽毛球馆计时计费软件灯控系统安装教程

佳易王羽毛球馆计时计费软件灯控系统安装教程 佳易王羽毛球馆计时计费软件,点击开始计时的时候,自动打开灯,结账后自动关闭灯。 因为场馆每一场地的灯功率都很大,需要加装交流接触器。这个由专业电工施工。 1、计时计费功能 &…

【iOS】数据持久化(一)之Plist文件、Preference(NSUserDefaults类)

目录 什么是Plist文件?plist可以存储哪些数据类型plist文件数据的读取与存储 Perference(NSUserDefaults)使用方法registerDefaults: 方法的使用 什么是Plist文件? Plist文件(属性列表)是将某些特定的类&a…

MG-HSF

作者未提供代码

“下一代云”白皮书发布:PaaS成为核心增长动力,腾讯云市场份额第二

“市场需求进一步向PaaS和SaaS层进发,使之成为公有云服务市场增长的主要动力。”11月22日,全球领先的IT研究和咨询公司国际数据公司(IDC)联合腾讯云发布“下一代云”白皮书——《聚焦平台能力,支撑智能化业务发展》指出…

python -opencv 图像锐化

python -opencv 图像锐化 图像锐化其实,是一种增强图片对比度的技术,我们可以通过计算图像的导数,把导数绝对值数值大于零的数值加回原图像,通过这种方法,可以增强图像的对比度。 实现代码如下: import c…

前缀树及其实现解析

前缀树 前缀树:又称单词查找树或键树,是一种哈希树的变种。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串) 利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 将一组字符串数组放入…