嘿,我正在用JAVA(sobel运算符)处理图像,我不明白一些代码行的意思。
int p = img.getRGB(x,y);
int a = (p>>24)&0xff;
int r = (p>>16)&0xff;
int g = (p>>8)&0xff;
int b = p&0xff;
p = (a<<24) | (avg<<16) | (avg<<8) |avg;
那么有人能解释一下这些线条是什么意思吗?
(p>>24)&0xff
p = (a<<24) | (avg<<16) | (avg<<8) |avg;
这些都是按位操作。p>>24将p int中的第一个字节向右移位24位,并且&0xff按位执行,并带有移位的数字和十六进制数ff(十进制255)。avg<lt;16将avg int中的第一个字节向左移位16位。And|按位执行或与其他值一起执行。这些就是所谓的比特掩码。搜索按位操作和位掩码以获取详细信息。希望我能帮上忙:)