主要内容

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=值(指数)

例子

全部折叠

读一个图像,把它转换成灰度,并显示结果。

我= imread (“foggysf2.jpg”);I = rgb2gray(我);imshow (I)标题(“灰度图像”)

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

计算两个阈值水平。

打= multithresh(我,2);

使用图像分割成三个层次imquantize

标签= imquantize(我打);

分割的图像转换成彩色图像使用label2rgb和显示。

labelsRGB = label2rgb(标签);imshow (labelsRGB)标题(“分割图像”)

图包含一个坐标轴对象。标题分割图像的坐标轴对象包含一个类型的对象的形象。

阅读真彩图像(RGB)和显示它。

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

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

从整个生成阈值7水平RGB图像。

threshRGB = multithresh (7);

为每架飞机的RGB图像生成阈值。

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

过程整个图像的阈值计算整个图像。

值= [0 threshRGB(结束)2:255];quantRGB = imquantize(我threshRGB价值);

分别处理每个RGB飞机使用阈值向量计算从给定的平面。数字转换每个RGB飞机使用阈值向量生成的平面。

quantPlane = 0(大小(I));我= 1:3价值= [0 threshForPlanes(结束),2:255];quantPlane(:,:我)= imquantize(我(:,:,i), threshForPlanes(我:),值);结束quantPlane = uint8 (quantPlane);

显示两个色调分离图像和注意的视觉差异在两个阈值方案。

imshowpair (quantRGB quantPlane,“蒙太奇”)轴标题(“完整的RGB图像量化Plane-by-Plane量化”)

图包含一个坐标轴对象。坐标轴对象与标题完全RGB图像量化Plane-by-Plane量化包含一个类型的对象的形象。

比较结果,计算独特的RGB的数量在每个输出图像像素矢量。注意,plane-by-plane阈值方案收益率约23%比完整的RGB图像颜色方案。

昏暗的大小= (quantRGB);quantRGBmx3 =重塑(quantRGB prod(暗(1:2)),3);quantPlanemx3 =重塑(quantPlane prod(暗(1:2)),3);colorsRGB =独特(quantRGBmx3,“行”);colorsPlane =独特(quantPlanemx3,“行”);disp ([的独特的颜色RGB图像:int2str(长度(colorsRGB))));
独特的颜色RGB图像:188
disp ([“Plane-by-Plane形象:独特的颜色”int2str(长度(colorsPlane))));
在231年Plane-by-Plane形象:独特的颜色

减少图像的离散水平的数量从256年到8。这个示例使用两种不同的方法将值分配给每个8输出水平。

读取图像并显示它。

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

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

把图像分割成八个水平获得七的阈值multithresh函数。

打= multithresh(我,7);

构建valuesMax向量,这样每个量化区间的最大值是分配到输出图像的八个级别。

valuesMax =(打max(我(:)))
valuesMax =1×8 uint8行向量65 88 119 149 169 189 215 255
[quant8_I_max,指数]= imquantize(我打valuesMax);

同样,构建valuesMin向量的最小值在每个量化间隔分配给八个级别的输出图像。而不是打电话imquantize再次与向量valuesMin,使用输出参数索引指定这些值输出图像。

我(:)valuesMin = [min()打)
valuesMin =1×8 uint8行向量23 65 88 119 149 169 189 215
quant8_I_min = valuesMin(指数);

并排显示8级输出图像。

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

图包含一个坐标轴对象。坐标轴对象与标题最小区间值最大区间值包含一个类型的对象的形象。

输入参数

全部折叠

输入图像,指定为一个数值数组的维度。

数据类型:||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

输出参数

全部折叠

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

映射数组,作为一个数组返回输入图像的大小相同一个。它包含整数索引访问构建输出图片:quant_A=(指数)。如果输入参数没有定义呢指数=quant_A

数据类型:

扩展功能

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

版本历史

介绍了R2012b

全部展开