给定两个ImagePlus或BufferedImages(我不在乎),我该如何匹配第一个和第二个的直方图?
通过匹配,我的意思是:
匹配一个的累积分布函数(CDF)
映像到另一个的CDF。
最佳答案
您可以使用斐济随附的HistogramMatcher
类(在其sub-project CorrectBleach中)。
这是一个Beanshell脚本示例(您可以通过斐济的Script Editor运行它):
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", "");