主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

imquantize

指定された量子化レベルと出力値によるイメージの量子化

説明

quant_A= imquantize (一个水平は,N要素のベクトル水平に含まれる指定された量子化値を使用してイメージ一个を量子化します。出力イメージquant_Aのサイズは一个と同じで,1からN + 1の範囲にあるN + 1個の離散整数値を含んでいます。これは,以下の条件で決まります。

  • (k)≤水平(1)の場合は,quant_A (k) = 1。

  • 水平(m - 1) < (k)≤水平(m)の場合は,quant_A (k) = m。

  • A(k)的>水平(N)の场合は,quant_A(K)= N + 1。

imquantizeは,2つの阴的に定义された末端间隔に値を代入します。

  • A(k)的电平≤(1)

  • (k) >水平(N)

quant_A= imquantize (___价值は,N + 1要素のベクトル价值を追加します。ここで,N长度水平)です。价值N + 1個の要素は,それぞれquant_A内のN + 1の離散ピクセル値のいずれかに対して量子化値を指定します。

  • (k)≤水平(1)の場合は,quant_A (k) =(1)值。

  • 水平(m - 1) < (k)≤水平(m)の場合は,quant_A (k) = (m)值。

  • (k) >水平(N)の場合は,quant_A (k) (N + 1) =值。

quant_A指数) = imquantize (___は以下の条件を満たす配列索引を返します。

quant_A值(指数)

すべて折りたたむ

イメージを読み取り,それを表示します。

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

2つのしきい値レベルを計算します。

打= multithresh(我,2);

imquantizeを使用してイメージを3つのレベルにセグメント化します。

seg_I = imquantize(I,THRESH);

label2rgbを使用してセグメント化したイメージをカラーイメージに変換し,それを表示します。

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

トゥルーカラー(RGB)イメージを読み取り,それを表示します。

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

RGBイメージ全体から7つのレベルのしきい値を生成します。

threshRGB = multithresh (7);

RGBイメージの平面ごとにしきい値を生成します。

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

イメージ全体から計算された一連のしきい値を使用してイメージ全体を処理します。

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

指定された平面から计算されたしきい値ベクトルを使用して各RGB平面を个别に处理します。各RGB平面で生成されたしきい値ベクトルを使用してその平面を量子化します。

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

ポスタリゼーションされた両方のイメージを表示して,2つのしきい値処理スキームの視覚的な違いを確認してください。

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

结果を比较するには,各出力イメージにおける一意のRGBピクセルベクトルの数を计算します。完全なRGBイメージスキームよりも平面ごとのしきい値处理スキームのほうが,生成されている色が23%多くなっています。

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

イメージ内の離散レベルの数を256から8に減らします。この例では2つの異なる方法を使用して8つの出力レベルのそれぞれに値を割り当てます。

イメージを読み取り,それを表示します。

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

multithreshから7つのしきい値を取得して,イメージを8つのレベルに分割します。

打= multithresh(我,7);

各量子化間隔の最大値が出力イメージの8つのレベルに代入されるように,valuesMaxベクトルを作成します。

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

同様に,各量子化間隔の最小値が出力イメージの8つのレベルに代入されるように,valuesMinベクトルを作成します。ベクトルvaluesMinimquantizeをもう一度呼び出す代わりに,出力引数インデックスを使用して,これらの値を出力イメージに割り当てます。

valuesMin = [min(I(:)) thresh]
valuesMin =1x8 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 のデータ型は values と同じになります。values が指定されない場合、quant_A はクラスになります。

マッピング配列。入力イメージ一个と同じサイズの配列として返されます。出力イメージを作成するために values にアクセスする整数インデックスが含まれており、quant_A价值指数)です。入力引数价值が定義されていない場合は、指数quant_Aとなります。

データ型:

拡张机能

GPUコード生成
GPU编码器™を使用してNVIDIA GPU®のためのCUDA®コードを生成します。

R2012bで导入