主要内容

imquantize

使用指定的量化级别和输出值量化图像

描述

例子

quant_A= imquantize (一个水平数字转换图像一个属性中包含的指定量化值N元素的向量水平.输出图像quant_A尺寸和一个,包含N + 1范围内的离散整数值1N + 1由以下标准决定:

  • 如果(k)水平(1),然后quant_A (k) =1

  • 如果水平(m - 1)<(k)水平(米),然后quant_A (k)

  • 如果(k)>水平(N),然后quant_A (k) =N + 1

请注意,imquantize将值赋给两个隐式定义的结束间隔:

  • (k)水平(1)

  • (k)>水平(N)

例子

quant_A= imquantize (___添加了N + 1元素的向量在哪里N长度水平).每一个N + 1的元素属性之一的量化值N + 1中的离散像素值quant_A

  • 如果(k)水平(1),然后quant_A (k) =值(1)

  • 如果水平(m - 1)<(k)水平(米),然后quant_A (k)值(米)

  • 如果(k)>水平(N),然后quant_A (k) =值(N + 1)

例子

quant_A指数] = imquantize(___返回一个数组指数这样:

quant_A值(指数)

例子

全部折叠

读取图像并显示它。

I = imread(“circlesBrightDark.png”);imshow (I)轴标题(原始图像的

图中包含一个轴对象。标题为Original Image的axes对象包含一个Image类型的对象。

计算两个阈值水平。

thresh = multithresh(I,2);

将图像分割为三个级别使用imquantize

seg_I = imquantize(I,thresh);

将分割图像转换为彩色图像使用label2rgb并展示出来。

RGB = label2rgb(seg_I);图;imshow (RGB)轴标题(“RGB分段图像”

图中包含一个轴对象。标题为RGB Segmented Image的axes对象包含一个Image类型的对象。

读取真彩色(RGB)图像并显示它。

I = imread(“peppers.png”);imshow (I)轴标题(“RGB图像”);

图中包含一个轴对象。标题为RGB Image的axes对象包含一个Image类型的对象。

从整个RGB图像生成七个级别的阈值。

threshRGB = multithresh(I,7);

为RGB图像的每个平面生成阈值。

threshForPlanes = 0 (3,7);i = 1:3 threshForPlanes(我:)= multithresh(我(:,:,i), 7);结束

使用从整个图像中计算的阈值集处理整个图像。

value = [0 threshRGB(2:end) 255];quantRGB = imquantize(I, threshRGB, value);

使用从给定平面计算的阈值向量分别处理每个RGB平面。使用为每个RGB平面生成的阈值向量量化每个RGB平面。

quantPlane = 0 (size(I));i = 1:3 value = [0 threshForPlanes(i,2:end) 255];quantPlane(:,:我)= imquantize(我(:,:,i), threshForPlanes(我:),值);结束quantPlane = uint8(quantPlane);

显示两种分离图像,并注意两种阈值方案的视觉差异。

imshowpair (quantRGB quantPlane,“蒙太奇”)轴标题(“全RGB图像逐面量化”

图中包含一个轴对象。标题为Full RGB Image quantiization Plane-by-Plane quantiization的axes对象包含一个Image类型的对象。

为了比较结果,计算每个输出图像中唯一RGB像素向量的数量。请注意,逐平面阈值方案产生的颜色比完整的RGB图像方案多约23%。

dim = size(quantRGB);quantRGBmx3 =重塑(quantRGB, prod(dim(1:2)), 3);quantPlanemx3 =重塑(quantPlane, prod(dim(1:2)), 3);colorsRGB = unique(quantRGBmx3,“行”);colorsPlane = unique(quantPlanemx3,“行”);disp ([RGB图像中独特的颜色:int2str(长度(colorsRGB))));
RGB图像中独特的颜色:188
disp ([“每架飞机的图像都有独特的颜色:”int2str(长度(colorsPlane))));
在平面对平面图像中独特的颜色:231

将图像中的离散层数从256减少到8。本例使用两种不同的方法为八个输出级别中的每一个分配值。

读取图像并显示它。

I = imread(“coins.png”);imshow (I)轴标题(灰度图像的

图中包含一个轴对象。标题为Grayscale Image的axis对象包含一个Image类型的对象。

的7个阈值,将图像分割为8个级别multithresh函数。

thresh = multithresh(I,7);

构建valuesMax向量,使每个量化区间中的最大值分配给输出图像的八个级别。

valuesMax = [thresh max(I(:))]
valuesMax =1x8 uint8行向量65 88 119 149 169 189 215 255
[quant8_I_max, index] = imquantize(I,thresh,valuesMax);

类似地,构造valuesMin向量,使每个量化区间中的最小值分配给输出图像的八个级别。而不是打电话imquantize同样是矢量valuesMin,使用输出参数index将这些值赋给输出图像。

valuesMin = [min(I(:)) thresh]
valuesMin =1x8 uint8行向量23 65 88 119 149 169 189 215
quant8_I_min = valuesMin(index);

并排显示两个8级输出图像。

imshowpair (quant8_I_min quant8_I_max,“蒙太奇”)标题(最小间隔值最大间隔值

图中包含一个轴对象。标题为“最小间隔值最大间隔值”的axis对象包含一个image类型的对象。

输入参数

全部折叠

输入图像,指定为任意维度的数字数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

量化级别,指定为N元素的向量。离散量化级的值必须是单调递增的顺序。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

量化值,指定为N + 1元素的向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

量子化的输出图像,返回为大小相同的数值数组一个.If输入参数,则quant_A是相同的数据类型.如果没有指定,那么quant_A是一流的

映射数组,作为与输入图像大小相同的数组返回一个.它包含可访问的整数索引要构造输出图像:quant_A指数).If输入参数没有定义,那么指数quant_A

数据类型:

扩展功能

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

在R2012b中引入

全部展开

Baidu
map