0

我使用过这段代码..我是新手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);
        }


    }
4

0 回答 0