精华内容
下载资源
问答
  • Imaging FCS 1.52是一个基本的ImageJ插件,可以从16位灰色tiff堆栈文件计算和查看时空相关函数。 它是根据FIJI(ImageJ 1.51f; Java 1.8.0_102)编写的,需要Imagescience进行统计(模拟器),并需要Apache Poi进行...
  • Imaging FCS 1.52是一个基本的ImageJ插件,可以从16位灰色tiff堆栈文件计算和查看时空相关函数。 它是根据FIJI(ImageJ 1.51f; Java 1.8.0_102)编写的,需要Imagescience进行统计(模拟器),并需要Apache Poi进行...
  • imageJ插件开发失败经验 我了解到的imageJ(java语言开发)的插件的开发方法有三个: ①编写c++程序,编译生成dll文件,然后通过java语言调用 ②imageJ宏语言开发,算是imageJ的集成语言,调用imageJ的库 ③java语言...

    imageJ插件开发失败经验

    我了解到的imageJ(java语言开发)的插件的开发方法有三个:
    ①编写c++程序,编译生成dll文件,然后通过java语言调用
    ②imageJ宏语言开发,算是imageJ的集成语言,调用imageJ的库
    ③java语言直接开发

    网盘资料:(里面只有一个ij.jar以及一个imageJ的小部分中文教程,需要可以下载)
    链接:https://pan.baidu.com/s/1JK4vvdLP76QqjOVQof0yfg
    提取码:d94i

    开发的思路

    我实验的是第一种方法,也就是c++编译生成dll文件的那种,由于我所拥有的是matlab代码,要做成插件,然后在将matlab代码转成c++代码的时候发现太麻烦了,然后想走捷径,就想到了混合matlab与vs2019的混合编译,因为matlab也能生成dll文件,并且c++能够调用,并且在后续的实验中也发现了java程序也一样能够调用,但是结果就是能够实现,但是就是需要matlab的安装环境,也就是说需要安装matlab,不符合项目的要求,所以最后放弃了。

    插件开发思路

    创建一个class类(我使用的是Apache NetBeans IDE 12.4)

    代码来自jni开发教程

    创建一个Java工程
    在这里插入图片描述
    把它放在你的文件夹里面,然后添加一个类
    在这里插入图片描述
    输入以下代码

    public class test_Plugin_four_ {
        public static native String sayHello(String name); 
        
        public static void main(String[] args) {
          System.load("F:\\310project\\HNwork\\plugin\\test_Plugin_four\\test_dll_four\\x64\\Debug\\test_dll_four.dll"); 
            System.out.println("Strat to work");
            String text = sayHello("xiaoming");
            System.out.println(text);
        }
    

    其中加载dll库的句子可以先不加,不影响,主要是后面调用的。
    记得修改以下类名称就行,保存
    在这里插入图片描述

    生成c++头文件

    windows + r 然后输入cmd
    在这里插入图片描述
    然后进入到你创建的java文件的目录下
    在这里插入图片描述
    然后编译java程序

    javac test_hello.java
    

    再编译生成头文件:

    javah -jni test_hello
    

    注意不要后缀class
    在这里插入图片描述
    然后你的文件夹下面就会有c++的头文件了
    在这里插入图片描述

    创建c++ 项目

    直接选空项目就行
    在这里插入图片描述
    右键源文件,添加一个c++文件
    在这里插入图片描述
    修改名称后确定

    然后将刚刚生成的头文件复制到你创建的c++项目的文件夹下:
    在这里插入图片描述
    然后添加以下代码:

    #include "test_hello.h"
    
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    	/*
    	* Class: com_study_jnilearn_HelloWorld
    	* Method: sayHello
    	* Signature: (Ljava/lang/String;)Ljava/lang/String;
    	*/
    	JNIEXPORT jstring JNICALL Java_test_1hello_sayHello(
    		JNIEnv* env, jclass cls, jstring j_str)
    	{
    		const char* c_str = NULL;
    		char buff[128] = { 0 };
    		c_str = (*env).GetStringUTFChars(j_str, 0);
    		if (c_str == NULL)
    		{
    			printf("out of memory.\n");
    			return NULL;
    		}
    		(*env).ReleaseStringUTFChars(j_str, c_str);
    		printf("Java Str:%s\n", c_str);
    
    		//		sprintf_s(buff, "hello %s", c_str);
    		printf("hello :%s\n", c_str);
    
    		return (*env).NewStringUTF("Hello,I am xiaoming");
    	}
    #ifdef __cplusplus
    }
    #endif
    

    然后你会发现一大堆错误,不要慌,我们首先将工程修改为x64工程,如下:
    在这里插入图片描述
    然后再右击项目,点击属性,进入到属性页面:
    在这里插入图片描述
    中间有个配置类型,修改为dll文件
    在这里插入图片描述
    再将java的环境添加进去,点击vc++目录,包含目录,添加你的java环境
    在这里插入图片描述
    按确认,应用然后错误就消失了,然后生成解决方案,你就会发现在你的c++项目的文件夹下就可以看见生成的dll文件了
    在这里插入图片描述
    然后复制路径,和名称,写入你的java程序里面
    在这里插入图片描述
    然后运行,出现
    在这里插入图片描述
    那么恭喜你,已经成功第一步了。完成了Java和c++的通信,接下来就是生成插件了。

    生成imageJ插件

    在imageJ的菜单栏的那一项,点击plugin里面,你会发现有一个new,里面提供有imageJ插件开发的例程,例程里面有三个选项,具体选哪个,我们可以根据自己的需求来,我们在这里选择的是有界面的
    在这里插入图片描述
    这个是官方提供的例程,我们加点控件啥的,如下,创建了三个控件,然后是点击step1 会加载我们生成的dll库,然后接收返回的值,作为log打印:

    import static ij.IJ.log;
    import static ij.IJ.showMessage;
    import ij.process.*;
    import ij.gui.*;
    import java.awt.*;
    import ij.plugin.frame.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import static javax.swing.JFrame.EXIT_ON_CLOSE;
    import javax.swing.JLabel;
    
    public class test_hello extends PlugInFrame{
        Panel panel;
        
        public static native String sayHello(String name); 
        
        public test_hello() {
            super("test_Plugin_four_");
            panel = new Panel();
            panel.setLayout(new GridLayout(3,1,15,50));
                    
            Button btn1 = new Button("Step 1");
            panel.add(btn1);
            btn1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
    
            System.load("F:\\test_hello\\test_hello_dell\\x64\\Debug\\test_hello_dell.dll"); 
                    
            log("star to work");
    //                System.load("D:\\fiji-win64\\Fiji.app\\test_dll_four.dll"); 
            String text = sayHello("xiaoming");
            log (text);
                        }
                    });
                    
            Button btn2 = new Button("Step 2");
            panel.add(btn2);
                    
            Button btn3 = new Button("Step 3");
            panel.add(btn3);
                    
            add(panel);
            pack();
            GUI.center(this);
            setVisible(true);
        }
    }
    

    当我们把代码加进去,会发现有很多错误,如下:
    在这里插入图片描述
    那是因为我们没有导入imageJ的包,当时为了尽快验证,所以就直接下了ij.jar文件然后导入就算了,没有进行太多的操作,懂的小伙伴可以自己试试。
    将ij.jar放在目录下面:
    在这里插入图片描述
    然后在你的java项目下面添加进去就可以了
    在这里插入图片描述
    右击Libraries然后选着Add jar,然后选择你ij.jar放置的目录下就行了,
    在这里插入图片描述
    错误解决后,更改以下system.load()函数的路径就可以了。
    然后如下:
    在这里插入图片描述
    在这里插入图片描述
    就表明已经生成了插件,插件的位置在你的java目录下的dist文件里面:
    在这里插入图片描述

    将插件放入到你的imageJ的目录下的plugin里面就行了
    在这里插入图片描述
    接着打开你的imageJ,在plugin下面能找到你的插件的名字了,运行效果如下:
    在这里插入图片描述
    在这里插入图片描述
    这样子插件就已经完成了,需要的话根据项目修改就可以了。

    一些小知识

    ①网上的资料很多,其实真的也很杂,所以看到一个完整的教程不容易,所以需要不断的尝试。
    ②你创建的插件一定要带下划线_,你可以生成后再修改也行,但是这是imageJ里面规定的
    ③如果你的生成插件里面有package(java导包的语句),imageJ是不会识别到你的插件的,其实你按照流程走,不自己创建文件夹,是不需要要package语句的
    ④可以学习以下jni的相关知识,里面有很多包括native的一些说法,以及很多函数

    最后

    如果有大佬是做过我的那个方法的话,可以评论留下联系方式,我联系你,我讲一下我的那个思路和目前做到的步骤。
    (想法:Java既然能够调用c++生成的dll文件,而vs2019和matlab也是可以混合编程的,那么理论上这种方法做的插件应该是可以的,但是事实上也是,但是需要依赖matlab的环境,也就是说在计算机的环境里面添加matlab
    目前的步骤:Java调用没问题,插件也没问题,除了出不了matlab的窗口,但是可以调用matlab的引擎,但是还是那句话需要用到matlab的安装环境,其实尝试过将matlab的安装文件复制出来试一下调用了那些库,但是最后放弃了,因为初衷已经不一样了。

    展开全文
  • ImageJ 编写插件

    千次阅读 2011-04-15 23:05:00
    ImageJ编写插件     运行ImageJ ->plugins ->New ->plugin     加入以下源码   ------------------------------------------------------ -- My_Plugin...

     

     

     

     

     

    ImageJ 中编写插件

     

     

    运行ImageJ ->plugins ->New ->plugin

     

     

    加入以下源码

     

    ------------------------------------------------------

    -- My_Plugin.java

     

    import ij.*;

    import ij.process.*;

    import ij.gui.*;

    import java.awt.*;

    import ij.plugin.*;

    import ij.plugin.frame.*;

     

    public class My_Plugin implements PlugIn {

     

    public void run(String arg) {

    IJ.showMessage("My_Plugin","Hello world!");

    }

     

    }

     

    -------------------------------------------------------

     

    Ctrl + R 运行

     

     

     

    eclipse 中编写ImageJ 插件

     

    运行eclipse ->File ->New ->Java Project ->项目名填 PP_PP ,选Use default JRE ->Next ->Libraries ->Add External JARs ->选择ImageJ 安装目录中的ij.jar ->Finish

     

    新建PP_PP 源文件,加入以下代码:

     

     

    ---------------------------------------------------

    -- PP_PP.java

     

    import ij.*;

    import ij.process.*;

    import ij.gui.*;

    import java.awt.*;

    import ij.plugin.*;

    import ij.plugin.frame.*;

     

    public class PP_PP implements PlugIn {

     

    public void run(String arg) {

    IJ.showMessage("My_Plugin","Hello world!");

    }

     

    }

     

    -----------------------------------------------

     

    保存(eclipse 是既保存既编译的) ->将生成的 PP_PP.class 文件复制到ImageJ 的plugins 目录。

     

     

    运行ImageJ ->Plugins ->Compile and Run ->选择PP_PP.class

     

     

     

    一种更方便的方法是把项目的输出目录设置成ImageJ 的Plugins 目录,这样就省去了复制PP_PP.class 的麻烦:

     

     

    首选取消IDE 的自动清空输出目录(重要!不然ImageJ 的Plugins 目录会被清空!!!!)

     

     

    选择项目属性 ->Java Compiler ->Building ->Configure Workspace Settings ->Enable project specific settings ->Output folder ->取消Scrub output folder when cleaning projects 这一项(重要!!)

     

     

     

    Java Build Path ->Default output folder ->Browse ->在项目名上点一下 ->Create New Folder ->Advanced ->选择Link to folder in the system ->然后选ImageJ 的Plugin 目录

     

    一路OK 后掉示要删除bin 目录,点确定删除掉。

     

     

     

    展开全文
  • ImageJ支持计算机全平台:ImageJ是用Java编写的,它允许它在32位和64位模式下在Linux,Mac OS X和Windows上运行。开源:ImageJ及其 Java源代码 可在公共领域免费获得 。无需许可证。用户社区:ImageJ拥有庞大且知识...

    ImageJ支持计算机全平台:ImageJ是用Java编写的,它允许它在32位和64位模式下在Linux,Mac OS X和Windows上运行。

    开源:ImageJ及其 Java源代码 可在公共领域免费获得 。无需许可证。

    用户社区:ImageJ拥有庞大且知识渊博的全球用户社区。超过1700名用户和开发人员订阅了 ImageJ邮件列表。

    宏:使用宏自动执行任务并创建自定义工具 。使用命令记录器生成宏代码 并使用宏调试器对其进行 调试。 ImageJ网站上提供了300多个宏 。

    插件:通过使用ImageJ的内置文本编辑器和Java编译器开发插件来扩展ImageJ。超过500个插件可用。

    工具包:使用ImageJ作为图像处理工具包(类库)来开发 applet,servlet或应用程序。

    速度:ImageJ是世界上最快的纯Java图像处理程序。它可以在0.1秒(*)内过滤2048x2048图像。那是每秒4000万像素!

    数据类型:8位灰度或索引颜色,16位无符号整数,32位浮点和RGB颜色。

    文件格式:打开并保存所有支持的数据类型,如TIFF(未压缩)或原始数据。打开并保存GIF,JPEG,BMP,PNG,PGM,FITS和ASCII。打开DICOM。使用URL打开TIFF,GIF,JPEG,DICOM和原始数据。使用插件打开并保存许多其他格式 。

    图像显示:工具提供了用于缩放(1:32到32:1)和滚动图像。所有分析和处理功能均可在任何放大倍数下工作。

    选择:创建矩形,椭圆形或不规则区域选择。创建线和点选择。编辑选择并使用棒工具自动创建它们。绘制,填充,清除,过滤或测量选择。保存选择并将其传输到其他图像。

    图像增强:支持8位灰度和RGB彩色图像的平滑,锐化,边缘检测,中值滤波和阈值处理。交互式调整8,16和32位图像的亮度和对比度。

    几何操作:裁剪,缩放,调整大小和旋转。垂直或水平翻转。

    分析:测量选区或整个图像的面积,平均值,标准偏差,最小值和最大值。测量长度和角度。使用真实世界的测量单位,如毫米。使用密度标准进行校准。生成直方图和剖面图。

    编辑:剪切,复制或粘贴图像或选择。使用AND,OR,XOR或“混合”模式粘贴。向图像添加文本,箭头,矩形,椭圆或多边形。

    色彩处理:将32位彩色图像分割为RGB或HSV组件。将8位组件合并为彩色图像。将RGB图像转换为8位索引颜色。将伪彩色调色板应用于灰度图像。

    栈:在单个窗口中显示相关图像的“堆栈”。使用单个命令处理整个堆栈。以堆栈形式打开图像文件夹。将堆栈保存为多图像TIFF文件。

    52c800ae63c2bf9279eba9d769495c8b.png
    展开全文
  • ImageJ 的组合网格插件 组合网格插件基于最初由 Wayne Rasband 博士编写并经他许可修改的网格插件 ( )。 作者; Daisuke Kinose [1]和 Adrian Png [2] [1]加拿大不列颠哥伦比亚大学圣保罗医院心肺创新中心 James ...
  • ImageJ 插入插件和基本教程

    千次阅读 2021-01-15 15:42:36
    文章目录 前言 一、ImageJ的下载 二、ImageJ的安装 三、给ImageJ添加自定义插件 四、ImageJ闪退怎么办 前言 该软件是一个使用Java语音编写的图像处理和分析软件。ImageJ基于插件架构体系设计,可以通过编写插件对其...


    前言

    该软件是一个使用Java语音编写的图像处理和分析软件。ImageJ基于插件架构体系设计,可以通过编写插件对其功能进行扩展


    一、ImageJ的下载

    这款软件是完完全全免费的!而且前人已经开发出了许许多多,针对不同需求的插件,可以直接安装调用。

    但是,由于它基于Java,所以电脑上必须先配置Java环境,配置教程直接百度

    选择需要的Java版本下载:java_downloads


    那么在哪里可以下载ImageJ?

    如果不想手动安装插件,此处推荐下载Fiji
    (说明:Fiji其实就是ImageJ,这个名字其实就是:Fiji is just ImageJ的首字母。Fiji和ImageJ的区别是:Fiji自动包含了各种有用的插件,而ImageJ需要手动安装插件)
    在这里插入图片描述
    选择你需要的版本,下载好是一个288M的压缩包

    如果官网下载失败,也可以尝试在GitHub或者CSDN上找资源


    二、ImageJ的安装

    怎么安装ImageJ?

    ImageJ不需要安装,解压后有这样一个文件夹
    在这里插入图片描述
    直接点击里边的ImageJ-win64.exe就可以运行
    在这里插入图片描述
    出现这样一个标志即打开成功
    在这里插入图片描述
    操作界面如上所示,出现此界面说明你安装成功


    三、给ImageJ添加自定义插件

    打开软件后,通过file→open或者直接拖动的方式开启图档。操作界面中的指令可以对其进行不同的处理。

    如何将自己编写/下载的插件安装到ImageJ?
    为ImageJ编写的插件必须放在ImageJ安装目录的子目录“plugins”下,切必须命名为带有下划线的格式,例如:
    在这里插入图片描述
    将其中的jar文件放在“plugins”目录下,软件会在启动时自动加载这样格式的文件,而后就可以在操作界面的“plugins”按钮下找到自定义的插件。
    在这里插入图片描述
    这样就可以按照自定义的要求处理图像啦~


    四、ImageJ闪退怎么办

    1.ImageJ的存储路径下不要出现中文命名文件夹
    在这里插入图片描述
    全英文为好,而且最好不要放在C盘


    2.检查电脑中的Java环境是否配置好,或者Java版本是否过低。有以上情况均可能导致有问题。
    怎么检查Java环境?

    打开电脑命令提示符
    在这里插入图片描述
    在其中分别输入java -version;java;javac
    如果正常出现文字即配置正确


    3.更多的问题可以去官方Troubleshooting里找答案

    Windows installation:链接
    Troubleshooting:链接

    展开全文
  • ... ImageJ是世界上 最快的纯Java的图像处理程序。它可以过滤一个2048x2048的图像在0.1秒内(*)。这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件。500...
  • Cell-Sampler 是一个用 Java 编写ImageJ 采样插件。 它旨在从表达 GFP 或荧光素酶报告分子的振荡细胞的显微镜图像中提取时间序列。 该程序是在曼彻斯特大学的 Piggin 实验室开发的。 访问 Cell-Sampler 网站以...
  • ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件。500多插件可用。 数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩。 文件格式:读写所有支持的数据类型为TIFF(非压缩)或...
  • 它最初是用Java编写的,并且主要在台式计算机上可用。 我们使用名为的Java编译器将它编译为和Javascript,带有附加功能以将其与ImJoy插件生态系统连接。 一键安装,无需安装也不需要Java运行时环境,您就可以在...
  • ImageJ与OpenCV(JavaCV)一起使用,主要贡献的下面这个开源项目IJ-OpenCV https://github.com/joheras/IJ-OpenCV 论文:Domínguez, César, Heras, Jónathan, Pascual V . IJ-OpenCV: Combining ImageJ and ...
  • 介绍imageJ基于Java的开源图像处理应用项目,以及运行与使用。
  • 以下内容来自于维基百科:ImageJ是一个基于java的公共的图像处理软件,能够显示,编辑,分析,处理,保存,打印8位,16位,32位的图片, 支持TIFF, PNG, GIF, JPEG, BMP, DICOM, FITS等多种格式。除了基本的图像操作...
  • ImageJ 综述

    千次阅读 2017-08-27 17:29:25
    ImageJ Induction ImageJ Feature Runs Everywhere Open Source User Community Macros Plugins Toolkit Speed Data Types File Formats Image display Selections Image Enhancement Geometric Operations Analysis
  • 这些是辅助 ImageJ 插件,与我为分析免疫金标记电子显微照片而编写的分析工具系列一起使用。 DistToRandomLine 用于量化与随机放置的感兴趣线区域相关的免疫金标记。 它与 DistToPath.py 结合使用。 ...
  • imageJ中文开发教程

    2013-05-24 22:42:51
    imageJ是一个开源的用java语言编写的图像处理软件,可以方便快捷的处理图像,并易于开发新的插件,扩展用途,本文档对其主要内容进行讲解。
  • ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件。500多插件可用。 数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩。 文件格式:读写所有支持的数据类型为TIFF(非压缩)...
  • Java_常见格式的文件Java读写插件

    千次阅读 2017-04-06 18:09:01
    How do I access the XYZ file format in java ? Specifications for many file formats can be found at Wotsit. A large database of file extensions be found at www.file-extensions.org and dotwhat.net ...
  • ImageJ使用手册介绍

    千次阅读 2019-08-23 09:09:40
    ImageJ使用手册介绍 Image J是一款公有领域的Java图像处理和分析程序,该程序的灵感来源于苹果电脑(Macintosh)的图像处理软件NIH Image。其运行有两种方式,其一是在线的小程序;其二,可下载的应用,在任何具有...
  • 它是什么ImageJ是一个基于java的公共的图像处理软件,它是由National Institutes of Health开发的。可运行于Microsoft Windows,Mac OS,Mac OS X,Linux,和Sharp Zaurus PDA等多种平台。其基于java的特点, 使得它...
  • imagej 基本操作

    万次阅读 多人点赞 2019-06-14 21:43:22
    imagej菜单栏列出了ImageJ的所有命令,它包含八个菜单: File:基本的文件操作,包括打开、保存、创建新图片,大多数命令看名字就知道什么意思 Edit:编辑和绘制操作,以及全局设定 Image:图像显示,包括...
  • ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件。500多插件可用。数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩。文件格式:读写全部支持的数据类型为TIFF(非压缩)或原始...
  • ImageJ 1.42——ij142-jdk6-setup.exe ...ImageJ是一个开放结构的软件, 支持用户自定义插件和宏。 ImageJ自带编辑器, 并且导入了java的编译器,实现了简单的IDE功能, 用户可直接基于ImageJ进行图像处理。
  • 图像处理软件ImageJ

    2019-10-08 06:49:15
    ImageJ是一个基于java的公共的图像处理软件,它是由National Institutes of Health开发的。可运行于Microsoft Windows,Mac OS,Mac OS X,Linux,和Sharp Zaurus等多种平台。其基于java的特点,使得它编写的程序能...
  • ImageJ】1.简介

    2019-07-02 14:23:00
    ImageJ是一个基于java的公共图像处理软件,其基于java的特点,使得它编写的程序能以applet等方式分发 2 ImageJ功能 显示,编辑,分析,处理,保存,打印8位,16位,32位的图片 支持TIFF, PNG, GIF, JPEG,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,980
精华内容 2,392
关键字:

java编写imagej插件

java 订阅