root/graph/JavaPopWeb/src/jp/ac/nime/computer/grpsimulator/ImgPr/HistogramBinary.java

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. HistogramBinary
  2. Calculation
  3. 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);
        }
        
}

/* [<][>][^][v][top][bottom][index][help] */