java 读取图片给 matlab_如何将MATLAB图像处理程序转换为java?

将Matlab代码转换为Java代码有几个一般的缺陷.我将Matlab转换成C代码,所以我的建议来自于这些经验.

>如果你在Matlab中使用for循环,一般来说,你做错了.添加矩阵(图像等)是相当简单的:

a = b c;

不管图像的大小.过滤也是一个相当简单的调用:

a = imfilter(‘median’,b); #or这样的事情,我现在不在我的matlab机器的前面.

类似的函数调用存在于JAI(Java Advanced Imaging)中,因此可以查看是否可以找到它们.我不知道你的中位数过滤要求的具体细节(我认为medfilt1是一个3×3的本地中值过滤内核,而不是数据上运行的一维过滤内核,因为这意味着你只能在一个过滤器方向),所以看看the documentation.中有什么但是,如果你自己编写,上面的内容可以像一个双重嵌套的for循环一样简单,或者是一个复杂的类,实现类似于

MyMatrix a = MyMatrix.Add(b,c);

我的观点是,Matlab的简单性可以掩盖您需要做出的所有设计决策,以使其成为一个高效的java程序.

>记住,当你做循环,matlab和java有反向行/列顺序. Matlab是专栏,java是row-major.你将需要重写你的循环来考虑这个变化,否则你的代码会比它慢.

>就个人而言,除了我需要完成的具体操作之外,我会倾向于避免JAI.例如,只需将其用于中值过滤操作等等.我认为使用它是一个优化,但这只是因为我是老学校,而且首先要写我自己的图像处理操作.如果您采用这种方法,您可以将代码编写为您想要的代码,然后可以添加JAI调用,并确保输出与您的代码已经相符.在C中使用诸如JAI或Intel IPP之类的高级库的问题是存在很多特定于库的陷阱(如平铺),或者每一行是否分配像位图一样具有几个额外的像素,或其他这样的细节),并且您不想处理这些问题,同时移动您的代码. JAI很快,但它不是一个魔法子弹;如果你不知道如何使用它,更好地确保你有一些东西,你有一些快速.

>如果我可以在线条之间读一点点,看起来你正在对医学成像数据进行某种分割.我不知道在DICOM图像中读取什么是java库,但gdcm适用于C和C#,还有java包装器. Matlab掩盖了图像处理的便利性,特别是DICOM图像处理,因此您可能会发现自己必须学习一些DICOM库才能处理图像文件操作.多年来,我学到了DICOM标准的一小部分; specification是非常完整的,也许太过分了,但你可以弄清楚如何做你所需要做的令人难以置信的细节.如果您正在尝试分割医疗数据,则将样条曲线保存在数据上是不正确的事情,以使您的图像与其他DICOM读取器一起运行.看一下轮廓线的规定.

编辑响应更多信息:

样条拟合可能最好从数字方法而不是图书馆方法完成.可能有一种方法可以在JAI中执行此操作,但我对该语言不够熟悉.

相反,我会查看数字食谱,特别是Chapter 3,用于样条拟合的代码.代码是一个基础,而不是零基础,所以它需要一些翻译,但它是完全可行的.

如果你想从边界去除噪点,你可能还想尝试模糊你最近得出的点的边缘.不知道您想要做的样条曲线(有很多变体),很难用另一种语言推荐一个完全相同的结果.

编辑2.5:如果通过拼图从一个贡献的图书馆,你的意思是像this code?如果最糟糕的情况是最糟糕的,你至少要有源代码.如果你最终不得不做这样的事情,另一个非常有用的提示是,Matlab是双重的,没有别的,除非你强制它(即使这样,很多操作不适用于非双打).所以,为了保持合理的协议,你还需要用双打代码.我也做了几个测试.如果你最终重写代码(或类似的东西),拥有一组已知的输入和预期的输出(在一定的合理的误差范围内,你必须定义什么是“合理”的意思),这对于确保您正在复制的轮(不是真正重新创造)与原始距离相同.在最后一句话中可能有太多的泛化表达.

另一个编辑:如果上面所有的都太头痛了,那么考虑JA建设者已经指出了.否则,我概述的方法,或类似的方法,可能是你最终的地方.

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

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

相关文章

C++ 一键关闭屏幕

Demo下载地址&#xff1a;http://pan.baidu.com/s/1vN4wF #include <windows.h> #include "resource.h"LRESULT CALLBACK WindowProc( HWND hwnd, // handle to windowUINT uMsg, // message identifierWPARAM wParam, // first message parameterL…

django 学习 (一)

1. 下载Django 1.3.3 https://pypi.python.org/simple/django/ 2. 验证下载的文件 md5sum 3. 解压安装 python setup.py install 4. 在python的shell里验证是否安装成功 import django 5. 建立第一个django工程 django-admin.py startproject firstproject 6. 修改新建的工…

炸金花比牌规则java_陈陈来给你们炸金花的简易纸牌规则教学与心态指导

原标题&#xff1a;陈陈来给你们炸金花的简易纸牌规则教学与心态指导炸金花是在全国广泛流传的一种4-7人能同时进行的民间纸牌游戏。游戏使用一副扑克牌&#xff0c;去掉大小王&#xff0c;共52张牌&#xff0c;以手中的三张牌比输赢&#xff0c;游戏过程中需要考验玩家的胆略和…

EBS业务学习之应付INVOICE类型

INVOICE类型 类 型 描 述 标准INVOICE 是指由于采购货物或接受劳务&#xff0c;从供应商处取得的INVOICE &#xff08;标准INVOICE&#xff0c;既可以和订单匹配&#xff0c;也可以不匹配&#xff09; 贷项通知单 是指供应商对已开INVOICE的货物或劳务&…

django 学习 (二) 模板

1. 在应用的目录下创建templates目录&#xff0c;并创建一个html文件&#xff0c;比如my.html 2. 修改应用的views.py文件&#xff0c;将my.html文件反馈给请求&#xff0c;有以下几种写法 1) from django.template import loader, Context from django.http import HttpRespo…

简单网络聊天程序java_基于Java实现hello/hi简单网络聊天程序

Socket简要阐述Socket的概念Socket的英文原义是“孔”或“插座”。在网络编程中&#xff0c;网络上的两个程序通过一个双向的通信连接实现数据的交换&#xff0c;这个连接的一端称为一个Socket。Socket套接字是通信的基石&#xff0c;是支持TCP/IP协议的网络通信的基本操作单元…

华为基于策略划分VLAN的配置方法及示例

学过思科交换机的朋友&#xff0c;可能对基于策略划分VLAN的配置方法印象非常深&#xff0c;感觉确实比较复杂&#xff0c;先要配置VMPS以及VMPS数据库&#xff0c;但在华为交换机中&#xff0c;这种现象得到了彻底改变&#xff0c;因为它有了一种特殊的端口类型——Hybrid。说…

django 学习 (三) 模板变量

将views.py中的变量传递给html模板来显示&#xff0c;变量是以字典的形式传递给html模板文件显示的。 模板文件里以字典的{{健名}}来得到健值。 可传递的变量有以下几种形式 1. 基本变量 return render_to_response(index.html, {title:title-django, user:user-django}) 2. 字…

我的世界java刷怪数量_Minecraft我的世界Java版18w16a更新发布

Minecraft我的世界Java版18w16a更新发布&#xff01;Minecraft 1.13 仍未发布&#xff0c;18w16a为其第32个预览版。目前新版本已经基本完成了所有特性&#xff0c;现在更专注于漏洞修复和细节打磨了&#xff01;MINECRAFT SNAPSHOT 18W16AA Minecraft Java Edition snapshotJa…

IOS web app一些实用的属性设置

IOS对safari私有的属性很多&#xff0c;虽然很多不为人知但是却很实用。掌握好这些属性对web app和混合app的开发会很有帮助。 1.format-detection[telephoneno] 是否自动把电话号码转为链接 1<meta name"format-detection" content"telephoneno">IO…

django 学习 (四) 模板标签

模板标签实现html文件中的控制语句&#xff0c;模板标签语句用{% %}形式编写 假如在views.py文件中定义以下内容并传递给模板 my_dic {name:zhang, age:32, sex:male} my_list [aaa,bbb] return render_to_response(index.html, {list:my_list, dic:my_dic}) 下面为模板文…

java构建内存池队列_内存池完整实现代码及一些思考

为了提高效率和有效的监控内存的实时状态&#xff0c;我们采取了内存池的思想来解决效率与对内存实现监控的问题。网上查找到了一些方案&#xff0c;根据自己的理解实现了应用。我们什么时候要调用到内存池&#xff0c;1&#xff0c;当我们频繁的申请释放同样数据大小的内存空间…

Hibernate 第一个体验程序

首先要导入包&#xff0c;将下载的hibernate所有required包导入&#xff0c;将下载的hibernate用来写log的slf4j的api和nopjar包导入&#xff0c;将下载的mysql链接引擎jar包导入。 然后新建java工程。 先告诉hiernate怎么连数据库&#xff1a;在hibernate默认识别目录src根目录…

Django框架里的MVC思想

让我们来研究一个简单的例子&#xff0c;通过该实例&#xff0c;你可以分辨出&#xff0c;通过Web框架来实现的功能与之前的方式有何不同。 下面就是通过使用Django来完成以上功能的例子&#xff1a; 首先&#xff0c;我们分成4个Python的文件&#xff0c;(models.py , views.p…

小米功能机支持java吗_小米竟然卖功能机了!2.8吋/15天超长待机

【手机中国 新闻】众多周知&#xff0c;小米是从智能手机起家的&#xff0c;对于功能机从未涉足。但自从有了强大的小米生态链&#xff0c;制造各种科技产品那都不是事儿了。8月2日上午10点&#xff0c;小米有品众筹频道上线了一款功能手机——QIN多亲AI电话&#xff0c;仅售19…

Linux内核Crash分析

http://blog.chinaunix.net/uid-20788636-id-4377271.html 在工作中经常会遇到一些内核crash的情况&#xff0c;本文就是根据内核出现crash后的打印信息&#xff0c;对其进行了分析&#xff0c;使用的内核版本为&#xff1a;Linux2.6.32。 每一个进程的生命周期内&#xff0c…

java用beaninfo_JavaBeanInfo 和 Spring 之间的关系

Java Beans在这一章章节中笔者将和各位一起探讨关于 Java Beans 相关的内容。本章主要围绕 java.beans 这个包路径下的代码进行一些说明。在 Spring 中我们可以看到 BeanInfoFactory 该接口可以用来获取 Class 对应的 BeanInfo 对象&#xff0c;在 CachedIntrospectionResults …

用键盘实现上下选择

<html> <head> <title>键盘方向键控制表格</title> </head> <body onKeyDown"keyCheck();"> <table width"80" bgcolor"#FFFFFF" height"60" border"1" bordercolor"#FFFFFF&q…

selenium ruby和java_Selenium 2之Ruby版——安装篇

自从知道了Selenium的存在后&#xff0c;就一直都想&#xff0c;若要学习自动化&#xff0c;就要学习像Selenium这种比较有潜力的。Selenium有针对各种语言(java, C#, Python, Ruby, Perl)的版本&#xff0c;在此选择Ruby为学习方向&#xff0c;一来可以借此学习下Ruby&#xf…

基于visual Studio2013解决面试题之0702输出数字

&#xfeff;&#xfeff;&#xfeff;题目解决代码及点评/*输入数字 n&#xff0c;按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3&#xff0c;则输出 1、2、3一直到最大的 3 位数即 999。 */#include <iostream> using namespace std;//在不考虑大数的情况下&#…