使用ByteBuffer javacv计算黑色像素数

时间:2013-10-03 09:07:42

标签: javacv

我已经使用了这个代码..我是javacv的新手,我需要在一个区域中逐个获取像素并获得该像素的颜色。我能否知道如何使用ByteBuffer来做,因为字节缓冲区可以逐像素读取,我需要检查像素是黑色还是白色......

任何人都可以考虑一下......我真的被困在这里......

IplImage img=cvLoadImage("img\\ROI.jpg");


    CvScalar Black =  cvScalar(0, 0, 0, 0);
    CvScalar white =  cvScalar(255, 255, 255, 255);
    ByteBuffer buffer = img.getByteBuffer();

    for(int y = 0; y < img.height(); y++) {
        for(int x = 0; x < img.width(); x++) {
            int index = y * img.widthStep() + x * img.nChannels();

            // Used to read the pixel value - the 0xFF is needed to cast from
            // an unsigned byte to an int.
            int value = buffer.get(index) & 0xFF;

            // Sets the pixel to a value (greyscale).
            buffer.put(index, (byte) value);


            // Sets the pixel to a value (RGB, stored in BGR order).
            //buffer.putInt(index, Black);
           // buffer.put(index + 1, white);
        }


    }

0 个答案:

没有答案