本文主要是介绍数字图像处理——用Java获取像素点的RGB值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从前面的文字中就可以看出,对数字图像的处理都是在像素级上操作的,准确地讲是操作像素点的RGB值,在图像取反和灰度图像转换两篇中已经涉及到了对RGB操作的相关代码,相信大家已经也看到了,就是这一段:
for (int j = 0; j < height; j++) {for (int i = 0; i < width; i++) {int p = image.getRGB(i, j);int a = (p >> 24) & 0xff;int r = (p >> 16) & 0xff;int g = (p >> 8) & 0xff;int b = p & 0xff;p = (a << 24) | (r << 16) | (g << 8) | b;image.setRGB(i, j, p);}
}
其中这里的变量r,g,b就是对应的rgb值,那为什么要这样操作呢?先看一个图:
有了这个图相信大家就都看明白了,首先p是一个32位的二进制数,可以通过getRGB()
方法得到,那么最前面的8位是alpha,后面依次是Red,Green,Blue。所以这就是代码中移位操作的意义,当然最后还要回归到原来的结构,那就用(a << 24) | (r << 16) | (g << 8) | b
再拼装一次。
所以对图像中像素点的操作就可以这么写啦,后面具体是增强还是锐化,都是基于这样的操作做的。
这篇关于数字图像处理——用Java获取像素点的RGB值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!