主要内容

imhistmatch

调整直方图的二维图像与参考图像的直方图

描述

例子

J= imhistmatch (,裁判)将二维灰度或真彩图像返回输出图像J大约的直方图与参考图像的直方图匹配裁判

  • 如果两个裁判然后,真彩图像吗imhistmatch匹配的每个颜色通道独立的对应颜色通道裁判

  • 如果是真彩RGB图像和裁判是一个灰度图像,然后呢imhistmatch匹配每个通道的针对单一直方图来自裁判

  • 如果是一个灰度图像,然后呢裁判也必须是一个灰度图像。

图片裁判可以是任何允许的数据类型和相同规模的不需要。

例子

J= imhistmatch (,裁判,nbins)使用nbins等距的垃圾箱在适当范围内给定图像数据类型。返回的图片J没有超过nbins离散的水平。

  • 如果图像的数据类型,然后直方图区间[0,1]。

  • 如果图像的数据类型uint8,则直方图范围是[0,255]。

  • 如果图像的数据类型uint16,则直方图范围是[0,65535]。

  • 如果图像的数据类型int16,则直方图范围(-32768、32767)。

例子

J= imhistmatch (___,名称,值)使用名称-值对改变直方图匹配算法的行为。

例子

(J,hgram)= imhistmatch (___)返回参考图像的直方图裁判用于匹配hgramhgram是1 -nbins(当裁判是灰度)或3 * -nbins(当裁判真彩)矩阵,在哪里nbins是直方图箱的数量。在每一行hgram存储一个颜色通道的直方图裁判

例子

全部折叠

这些空中图像,在不同的时间,代表重叠视图相同的地形在康科德,马萨诸塞州。这个例子表明,输入图像一个裁判可以是不同的大小和图像类型。

加载一个RGB图像和灰度图像的引用。

一个= imread (“concordaerial.png”);Ref = imread (“concordorthophoto.png”);

得到的大小一个

大小(一个)
ans =1×32036 3060 3

得到的大小裁判

大小(Ref)
ans =1×22215 2956

请注意形象一个裁判不同大小和类型。图像一个真彩RGB图像,而图像吗裁判是一个灰度图像。两种图像的数据类型uint8

生成直方图匹配输出图像。匹配的每个通道的例子一个针对单一的柱状图裁判。输出图像B图像的特征一个——这是一个RGB图像的大小和数据类型是一样的形象一个。不同水平的数量在每个RGB通道的图像B箱子的数量是一样的在灰度图像的直方图建立裁判。在这个例子中,直方图裁判B有默认的容器数量,64。

B = imhistmatch (Ref);

RGB图像显示一个参考图像裁判直方图匹配的RGB图像B。显示之前的图片会做调整。

imshow (A)标题(与颜色的RGB图像投的)

图包含一个坐标轴对象。坐标轴对象与标题RGB图像颜色将包含一个类型的对象的形象。

imshow (Ref)标题(“参考灰度图像”)

图包含一个坐标轴对象。坐标轴对象标题参考灰度图像包含一个类型的对象的形象。

imshow (B)标题(“RGB图像直方图匹配”)

图包含一个坐标轴对象。坐标轴与标题直方图匹配的RGB图像对象包含一个类型的对象的形象。

读一个彩色图像和参考图像。证明多项式方法,分配参考图像的暗两个图像。

我= imread (“office_4.jpg”);ref = imread (“office_2.jpg”);蒙太奇({我ref})标题(的输入图像(左)与参考图像(右));

图包含一个坐标轴对象。坐标轴对象标题输入图像(左)与参考图像(右)包含一个类型的对象的形象。

使用多项式方法来调整图像的强度所以它与参考图像的直方图匹配裁判。相比之下,也调整图像的强度使用统一的方法。

J = imhistmatch (ref,我“方法”,多项式的);K = imhistmatch (ref,我“方法”,“统一”);蒙太奇({J, K})标题(“Histogram-Matched图像使用多项式方法(左)和统一的方法(右));

图包含一个坐标轴对象。坐标轴对象标题Histogram-Matched图像使用多项式方法(左)和统一的方法(右)包含一个类型的对象的形象。

histogram-matched图像使用统一的方法引入了错误的颜色在天空和道路。histogram-matched图像使用多项式方法不表现出这种工件。

这个例子展示了如何改变箱子的数量在目标直方图改进直方图均衡化。

加载两个图像的数据类型uint8进入工作区。用数码相机拍摄的图像,代表两个不同的曝光相同的场景。一个是一个曝光不足的图像和黑暗。裁判是一个参考图像有良好的接触和亮度。

一个= imread (“office_2.jpg”);ref = imread (“office_4.jpg”);

显示图片蒙太奇。

蒙太奇({ref})标题(“暗图像(左)和参考图像(右))

图包含一个坐标轴对象。坐标轴对象与标题暗图像(左)和参考图像(右)包含一个类型的对象的形象。

显示每个颜色通道使用的直方图256箱。您可以使用helper函数,displayHistogramChannels,这是包含在示例。

displayHistogramChannels (ref)

图包含6轴对象。坐标轴对象1标题输入图像的直方图包含一个直方图类型的对象。坐标轴对象2标题参考直方图图像包含一个直方图类型的对象。坐标轴对象3包含一个直方图类型的对象。坐标轴对象4包含一个直方图类型的对象。5轴对象包含一个类型的对象的直方图。6轴对象包含一个类型的对象的直方图。

图像一个较暗的图像,有大部分的像素低的垃圾箱。参考图像,r英孚,充分填充所有256箱值在所有三个RGB通道。

计算独特的数量每个颜色通道8位水平值的黑暗和参考图像。您可以使用helper函数,countUniqueValues,这是包含在示例。

numVals = countUniqueValues (ref);表(numVals (: 1), numVals (:, 2), numVals (:, 3),“VariableNames”,(“红色”“绿色”“蓝色”),“RowNames”,(“一个”“ref”])
ans =2×3表红绿蓝___ _____ _____ ref 256 256 256 224 205 193

平衡黑暗的直方图图像使用三种不同的值nbins:64年、128年和256年。64是默认的容器数量和256箱的最大数量uint8像素数据。

[B64, hgram64] = imhistmatch (ref, 64);[B128, hgram128] = imhistmatch (ref, 128);[B256, hgram256] = imhistmatch (ref, 256);图蒙太奇({B64、B128 B256},“大小”3[1])标题(输出图像的输出图像B64 | B128 |输出图像B256”)

图包含一个坐标轴对象。坐标轴对象与标题输出图像B64 |输出图像B128 |输出图像B256包含一个类型的对象的形象。

显示每个颜色通道使用的直方图256箱。您可以使用helper函数,displayThreeHistogramChannels,这是包含在示例。

displayThreeHistogramChannels (B64 B128 B256)

图包含9轴对象。坐标轴对象1标题输出图像的直方图B64包含一个直方图类型的对象。坐标轴对象2标题输出图像的直方图B128包含一个直方图类型的对象。坐标轴对象3标题输出图像的直方图B256包含一个直方图类型的对象。坐标轴对象4包含一个直方图类型的对象。5轴对象包含一个类型的对象的直方图。6轴对象包含一个类型的对象的直方图。7轴对象包含一个类型的对象的直方图。8轴对象包含一个直方图类型的对象。坐标轴对象9包含一个直方图类型的对象。

数一数独特的每个颜色通道8位水平值的三个直方图均衡图像。作为nbins数量的增加,水平在每个输出图像的RGB通道B也增加了。

numVals = countUniqueValues (B64 B128 B256);表(numVals (: 1), numVals (:, 2), numVals (:, 3),“VariableNames”,(“红色”“绿色”“蓝色”),“RowNames”,(“B64”“B128”“B256”])
ans =3×3表红绿蓝___ _____ _____ B64 57 60 58 B128 B256 134 135 136 101 104 104

这个例子展示了如何执行直方图匹配不同数量的垃圾箱。

加载一个16位的DICOM图像膝盖通过核磁共振成像。

K = dicomread (“knee1.dcm”);%读入原始16位图像LevelsK =独特(K (:));%确定独特的代码值的数量disp ([凯西:形象的num2str(长度(LevelsK)),不同水平的]);
图K: 448种不同的水平
disp ([“max = 'num2str (max (LevelsK)));
最大水平= 473
disp ([“最小级别= 'num2str(最低(LevelsK))));
分钟级别= 0

所有448个离散值代码值较低,导致图像看起来黑了。为了纠正这个问题,规模范围横跨整个16位的图像数据[0,65535]。

Kdouble =双(K);% uint16加倍kmult = 65535 / (max (max (Kdouble (:))));%全面乘数Ref = uint16 (kmult * Kdouble);%全面16位参考图像

变黑的参考图像裁判创建一个图像一个可以用于直方图匹配操作。

%建立凹弓形的曲线变暗| Ref |。斜坡= [0:65535]/ 65535;ppconcave =花键([0。1 .50 .72 .87点1],[0 .025二十五分。5。1]);Ybuf = ppval (ppconcave、斜坡);Lut16bit = uint16(圆(65535 * Ybuf));% | Ref |图像通过一个查找表(附近地区)变黑的形象。= intlut (Ref Lut16bit);

查看参考图像裁判和黑暗的形象一个。注意,他们有相同数量的离散值的代码,但在整体亮度不同。

次要情节(1、2、1)imshow (Ref)标题(裁判:参考图像的次要情节(1、2、2)imshow (A)标题(答:黑暗的形象的);

图包含2轴对象。与标题Ref坐标轴对象1:参考映像都包含一个图像类型的对象。坐标轴对象与标题2:黑暗的映像都包含一个对象类型的形象。

生成histogram-matched输出图像使用直方图和不同数量的垃圾箱。第一次使用默认的容器数量,64年。然后使用值出现在图像的数量一个448箱。

B16bit64 = imhistmatch((:,: 1),裁判(:,:1));%默认:64箱N =长度(LevelsK);%的独特的16位代码值在图像。B16bitUniq = imhistmatch((:,: 1),裁判(:,:1),N);

查看两个直方图匹配操作的结果。

图次要情节(1、2、1)imshow (B16bit64)标题(“B16bit64: 64箱”次要情节(1、2、2)imshow (Ref)标题(“B16bitUniq:”num2str (N),“垃圾箱”])

图包含2轴对象。轴与标题B16bit64对象1:64箱包含一个类型的对象的形象。轴与标题B16bitUniq对象2:448箱包含一个类型的对象的形象。

输入参数

全部折叠

输入图像转换,指定为一个二维真彩或灰度图像。返回的图像将输入的数据类型类形象。

数据类型:||int16|uint8|uint16

参考图像的直方图是参考直方图,指定为一个二维真彩或灰度图像。参考图像提供了等距的nbins本参考输出图像的直方图J试图匹配。

数据类型:||int16|uint8|uint16

参考直方图的等距的箱子数量,指定为一个正整数。除了指定数量的等距的垃圾箱在图像的直方图裁判,nbins也代表了离散数据的数量的上限水平出现在输出图像J

数据类型:

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:imhistmatch (ref,“方法”,“多项式”)匹配图像的直方图的参考图像裁判使用多项式映射技术。

用于地图的直方图映射技术裁判图像,指定为逗号分隔两人组成的“方法”这些值之一:

  • “统一”——使用直方图强度函数和直方图均衡化。

  • 多项式的——计算三次埃尔米特多项式映射函数的累积直方图源和参考图像。多项式方法时是有用的参考图像的颜色比输入图像。在这种情况下,多项式方法给出了一个平滑的颜色过渡比统一的方法。

输出参数

全部折叠

输出图像,作为二维真彩返回或灰度图像。输出图像来源于图像直方图是一种近似匹配的输入图像的直方图裁判建立与nbins条平行的垃圾箱。图像J是相同的大小和数据类型作为输入图像吗。输入参数nbins代表的数量的上限离散图像中包含的水平J

数据类型:||int16|uint8|uint16

直方图统计是从参考图像裁判指定为一个向量或矩阵。当裁判是一个真彩图像,hgram是一个3×-nbins矩阵。当裁判是一个灰度图像,hgram是1 -nbins向量。

数据类型:

算法

的目的imhistmatch是变换图像这样,图像的直方图J与直方图匹配来自形象裁判。它由nbins等距的垃圾箱,跨越图像的各种数据类型。这样的结果匹配直方图nbins也代表了离散数据的数量的上限水平出现在图像J

该算法的一个重要行为方面要注意的是,nbins增加价值,快速波动的程度之间相邻峰直方图的图像填充J倾向于增加。这下面的柱状图中可以看到情节从16位灰度MRI的例子。

一个最优值nbins代表着更多的产出水平(大值之间的权衡nbins),同时最小化峰直方图(小值的波动nbins)。

版本历史

介绍了R2012b

Baidu
map