/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- HistogramBinary
- Calculation
- Calculation
package jp.ac.nime.computer.grpsimulator.ImgPr;
import java.awt.*;
import java.awt.image.*;
import java.util.*;
/**
* ヒストグラム二値化
* 閾値指定
* @author kikuchi
* @version 1.0.0
*/
public class HistogramBinary extends HistogramOp {
/**
* ヒストグラム二値化
* 閾値指定
*
* @param flag 計算するプレーン 0 で濃度になる
* @param imgSrc ソース画像(YUV)
* @param imgDst 出力画像(YUV)
* @param params 最初の数値が閾値
*/
public void Calculation(int flag, BufferedImage imgSrc, BufferedImage imgDst, int[] params) {
// 引数チェック
if (flag == 0) flag = YP;
int ikiti = params[0];
// 全ピクセルの変換
for (int h = 0; h < imgSrc.getHeight(); h ++) {
for (int w = 0; w < imgSrc.getWidth(); w ++) {
int ayuv = imgSrc.getRGB(w, h); // ARGB つまり AYUV
int y = (ayuv & 0x00ff0000) >> 16;
int auv = ayuv & 0xff00ffff;
// 計算
if (y < ikiti) { // 閾値以下 0
imgDst.setRGB(w, h, auv);
} else { // 閾値以上は、255
ayuv = auv | (0x000000ff << 16);
imgDst.setRGB(w, h, ayuv);
}
}
}
}
/**
* ヒストグラム平坦化の実行
*(輝度プレーンに関する計算)
*
* @param imgSrc ソース画像(YUV)
* @param imgDst 出力画像(YUV)
* @param params 未使用
*/
public void Calculation(BufferedImage imgSrc, BufferedImage imgDst, int[] params) {
Calculation(0, imgSrc, imgDst, params);
}
}