帮助中心帮助中心
使用指定的量化级别和输出值量化图像
quant_A = imquantize(A,levels)
qant_a = imquantize(___、价值观)
[quant_A,index] = imquantize(___)
例子
quant_A= imquantize (一个,水平)数字转换图像一个属性中包含的指定量化值N元素的向量水平.输出图像quant_A尺寸和一个,包含N + 1范围内的离散整数值1来N + 1由以下标准决定:
quant_A= imquantize (一个,水平)
quant_A
一个
水平
N
N + 1
1
如果(k)≤水平(1),然后quant_A (k) =1.
如果水平(m - 1)<(k)≤水平(米),然后quant_A (k)=米.
如果(k)>水平(N),然后quant_A (k) =N + 1.
请注意,imquantize将值赋给两个隐式定义的结束间隔:
imquantize
(k)≤水平(1)
(k)>水平(N)
quant_A= imquantize (___,值)添加了N + 1元素的向量值在哪里N=长度(水平).每一个N + 1的元素值属性之一的量化值N + 1中的离散像素值quant_A.
quant_A= imquantize (___,值)
值
长度
如果(k)≤水平(1),然后quant_A (k) =值(1).
如果水平(m - 1)<(k)≤水平(米),然后quant_A (k)=值(米).
如果(k)>水平(N),然后quant_A (k) =值(N + 1).
[quant_A,指数] = imquantize(___)返回一个数组指数这样:
[quant_A,指数] = imquantize(___)
指数
quant_A=值(指数)
值(指数)
全部折叠
读取图像并显示它。
I = imread(“circlesBrightDark.png”);imshow (I)轴从标题(原始图像的)
计算两个阈值水平。
thresh = multithresh(I,2);
将图像分割为三个级别使用imquantize.
seg_I = imquantize(I,thresh);
将分割图像转换为彩色图像使用label2rgb并展示出来。
label2rgb
RGB = label2rgb(seg_I);图;imshow (RGB)轴从标题(“RGB分段图像”)
读取真彩色(RGB)图像并显示它。
I = imread(“peppers.png”);imshow (I)轴从标题(“RGB图像”);
从整个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图像逐面量化”)
为了比较结果,计算每个输出图像中唯一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)轴从标题(灰度图像的)
的7个阈值,将图像分割为8个级别multithresh函数。
multithresh
thresh = multithresh(I,7);
构建valuesMax向量,使每个量化区间中的最大值分配给输出图像的八个级别。
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
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,“蒙太奇”)标题(最小间隔值最大间隔值)
输入图像,指定为任意维度的数字数组。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
单
双
int8
int16
int32
int64
uint8
uint16
uint32
uint64
量化级别,指定为N元素的向量。离散量化级的值必须是单调递增的顺序。
量化值,指定为N + 1元素的向量。
量子化的输出图像,返回为大小相同的数值数组一个.If输入参数值,则quant_A是相同的数据类型值.如果值没有指定,那么quant_A是一流的双.
映射数组,作为与输入图像大小相同的数组返回一个.它包含可访问的整数索引值要构造输出图像:quant_A=值(指数).If输入参数值没有定义,那么指数=quant_A.
数据类型:双
imquantize支持生成C代码(需要MATLAB®编码器™).有关更多信息,请参见图像处理的代码生成.
backgroundPool
ThreadPool
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
全部展开
imquantize现在支持基于线程的环境。
multithresh|label2rgb|rgb2ind
rgb2ind
您有这个示例的修改版本。要使用编辑打开此示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处