我试图计算下图中移植的毛发数量.所以实际上,我必须计算在图像中心可以找到的斑点数量.(我已经上传了一个秃头皮的倒像,上面已经移植了新的毛发,因为原始图像是血腥的,绝对令人作呕!要查看原始的非倒置图像,请点击这里.要查看更大版本的倒置图像点击它).是否有任何已知的图像处理算法来检测这些斑点?我发现圆形霍夫变换算法可用于在图像中找到圆圈,但我不确定它是否是可用于查找下图中的小点的最佳算法.
PS根据其中一个答案,我尝试使用ImageJ提取斑点,但结果不够令人满意:
Closing滤波器(插件>快速形态学>形态滤波器)具有以下值:操作:闭合,元素:正方形,半径:2pxWhite Top Hat滤波器(插件>快速形态>形态滤波器)具有以下值:操作:白色顶帽,元素:方形,半径:17px

但是,我不知道在这一步之后该怎么做才能尽可能准确地计算移植点.我尝试使用(处理>查找最大值),但结果对我来说似乎不够准确(使用这些设置:噪声容限:10,输出:单点,排除边缘最大值,浅背景):
正如您所看到的,已经忽略了一些白点,并且已经标记了一些实际上不是毛发移植点的白色区域.
您建议使用哪些过滤器来准确找到斑点?使用ImageJ似乎是一个很好的选择,因为它提供了我们需要的大多数过滤器 但是,请随意使用其他工具,库(如OpenCV)等建议做什么.任何帮助都将受到高度赞赏!
algorithm image-processing computer-vision imagej image-segmentation
我想通过Java扫描一些论文.我找到了mm的计算twain库.
当我在站点上运行示例TwainExample.java时,我收到此错误.
uk.co.mmscomputing.device.twain.TwainIOException:无法加载Twain Source Manager.
另一方面,几乎相同的代码与ImageJ一起作为插件使用.然而,当我单独使用这个代码时,我仍然会收到相同的异常.
我想知道为什么这不起作用.
在常规Java应用程序中,我有一个BufferedImage,我想用ImageJ操作.我有一个宏,这正是我需要执行的.我怀疑第一步是创建一个ImagePlus对象,但我不知道如何在Java中运行ImagePlus对象上的宏.这里找到的ImageJ教程的7.3节说:
如果您决定使用ImagePlus作为内部图像格式,您还可以使用ImageJ发行版中的所有插件和宏以及所有其他ImageJ插件.
但并未说明如何操作.如果有人可以解释如何,或指向我的资源,我会非常感激.
从Mathematica,我希望将图像传递给ImageJ插件,并将结果从ImageJ发送到Mathematica.
JLink是一个有用的工具,但我既不熟悉也不熟悉ImageJ(很难在SO上利用现有的相关问题).你知道怎么做吗?
(我已经在我的Mac上安装了ImageJ.)
我正在处理非常大的tif图像,我正在将它组成一个大的单个图像.我有一个由我的同事创建的库,它生成图像金字塔,并提供了一个非常方便的图像金字塔可视化工具.这个可视化器非常适合在大图像上获取峰值并在视觉上识别感兴趣的点,但客户对这些大图像的图像分析更感兴趣.
因此,有必要将非常大的图像导出到单个文件中.我发现这很麻烦,因为这些图像的大小可以从800 MB到多GB.只是将这个单个图像加载到内存中的任务具有挑战性,特别是在进行图像分析时.
我想知道,如果有可能在java中以块或逐行的方式写这个大的tiff图像.目前我的应用程序在小型(8 GB RAM)机器上的内存不足.
组成这些图像的当前方法是:
将像素值存储到BufferedImage使用a中WritableRaster
short[][]pixels = ...
BufferedImage image = new BufferedImage(width, height, type);
WritableRaster = image.getRaster();
for (int row = 0; row < height; row++)
{
for (int col = 0; col < width; col++)
{
raster.setSample(col, row, 0, pixel[row][col]);
}
}
Run Code Online (Sandbox Code Playgroud)然后将缓冲的映像写入磁盘.对于这部分,我ImageJ用来将图像写为tif.如果有更好的方法支持16位灰度tif图像,那么我很乐意看一看
// BufferedImage image; from above
...
ImagePlus img = new ImagePlus();
img.setImage(image);
FileSaver fs = new FileSaver(img);
fs.saveAsTiff(file.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)这种方法的问题是它对8GB的RAM机器来说有太大的内存占用.
理想情况下,我想要的只是一个单一的short[][]pixels.这主要是因为我需要计算平均混合函数,因此会有一些内存占用.同样在将来我将添加一个线性混合.该short[][]pixels只占用〜765 MB的RAM为20K X 20K像素数据,我认为这是目前不可避免的,所以例如100K …
我有两张图像(切片),由两个相机传感器拍摄以完成一张图像。然而,由于传感器性能的一些差异,它们的颜色/色调有所不同,我需要将它们匹配以制作一张统一的图像。
我使用了此处HistogramMatcher解释的斐济(图像 J)中包含的函数 来将第二个图像的颜色与第一个图像的颜色相匹配。它给出了可接受的结果,但仍需要进一步处理。
所以我的问题是,拥有统一形象的最佳方法是什么。我应该从亮度、色调然后饱和度开始吗?除了“HistogramMatcher”功能之外还有其他颜色匹配功能吗?
下面是一个图像示例
我有一堆图像,靠近中心的酒吧.随着堆叠的进行,杆围绕一端枢转,并且整个堆叠包含图像,其中杆以许多不同的角度旋转,高达或低于水平45度.
如下图所示:

我正在寻找一种方法来旋转条形和/或整个图像,并在我进行其他处理之前水平对齐所有内容.理想情况下,这将在Matlab/imageJ/ImageMagick中完成.我正在尝试使用第一个Canny边缘检测,然后是Hough变换,然后是图像旋转来计算方法,但我希望这是一个已经解决的更普遍问题的特定情况.
我正在查看ImageJ中的数据集图像集(一堆.tif图像,大约130帧),我对数据集有疑问.这是一系列显微镜图像,每个框架是一个平面,比前一个框架高出/低于3-4微米.随着我对数据集的深入研究,光散射使背景更加明亮,因此样本的主要特征更加暗淡.
但是,ImageJ的亮度和对比度功能使用直方图来表示整个图像堆栈.当我在堆栈深处的图像上单击"自动"和"重置"时,产生的对比度是完美的:所有功能都非常好.然而,然后,在堆栈开始时,大多数功能已经饱和.
我尝试从堆栈中的各个点手动提取一些图像,然后分别在每个点上执行自动 - >亮度和对比度重置,然后将它们重新转换为堆栈,看起来非常稳固.如何以编程方式(例如使用插件)为整个堆栈执行此操作?什么是相关的API调用?
我想从命令行运行斐济,做批量图像处理之类的事情.我想通过在某些控制台上键入一些命令,可以启动一些批处理文件来执行一些宏.在这种情况下,斐济 GUI不会显示,但处理将在场景后面运行.
我只是尝试了FIji无头,但是当我尝试./Build.sh misc/headless.jar网络建议时,控制台提示返回无法找到artifactID'headless'的项目;
我也试过Javassist,几乎只是构建它,但还没弄清楚如何使用它.
当我输入时fiji --headless HelloWorldMacro.ijm,没有任何事情发生,HelloWorldMacro.ijm里面是printf("Hello world!");
我想知道,我应该如何从命令行运行FIji?我在正确的轨道上尝试过吗?如果是这样,还需要哪些额外的工作/变更才能使其发挥作用?非常感谢.
我正在使用Python设计一个软件,图像处理是其中的步骤之一。我正在使用 ImageJ 来实现这一点。
既然ImageJ里面有Jython解释器,可以在ImageJ软件里面打开,那么肯定有办法把ImageJ连接到Python,调用Python里面的所有函数。
我想知道如何在 Python 中完成所有处理而不是在 ImageJ 中打开解释器?