匹配直方图 - ImageJ

时间:2014-08-01 17:48:11

标签: java image image-processing imagej

鉴于两个ImagePlus或BufferedImages(我不在乎)如何匹配第一个到第二个的直方图?

通过匹配我的意思是:

匹配一个的累积分布函数(CDF) 图像到另一个的CDF。

1 个答案:

答案 0 :(得分:2)

您可以使用斐济({3}}中包含的HistogramMatcher类。

以下是Beanshell脚本示例(您可以通过斐济的sub-project CorrectBleach运行它):

import ij.IJ;
import histogram2.HistogramMatcher;

// get first image
imp1 = IJ.openImage("http://imagej.nih.gov/ij/images/bridge.gif");
// get second image
imp2 = IJ.openImage("http://imagej.nih.gov/ij/images/boats.gif");

ip1 = imp1.getProcessor();
ip2 = imp2.getProcessor();

hist1 = ip1.getHistogram();
hist2 = ip2.getHistogram();

matcher = new HistogramMatcher();
newHist = matcher.matchHistograms(hist1, hist2);

ip1.applyTable(newHist);
imp1.setProcessor(ip1);

imp1.show();
imp2.show();

// show the histograms of both images
IJ.run(imp1, "Histogram", "");
IJ.run(imp2, "Histogram", "");