gpt4 book ai didi

java - (k<<24)>>>24在遥感图像读取中的意义是什么?

转载 作者:行者123 更新时间:2023-12-04 10:52:31 25 4
gpt4 key购买 nike

一般来说,为什么我们先将它左移,然后再次右移?
它与确保像素值为正之类的事情有关吗?
代码剪断->

for(k=0; k<Width; k++)
{
if(shiftFlag != 8)
{
p1 = pix_rgb[i][2*k] << 24;
p2 = (pix_rgb[i][2*k+1] <<24 ) >>> 8;
tempCount = p1 | p2;
tempCount = tempCount >>> 16;
}
else
tempCount = (pix_rgb[i][k] << 24) >>> 24;

if(tempCount>maxBand[i])
maxBand[i]=tempCount;

if(tempCount<minBand[i])
minBand[i]=tempCount;
}

最佳答案

基于 pix_rgb 的名称我假设 pix_rgb[i][k]持有 int代表颜色,通常在 32 位(大小为 int )以形式写入

AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB
| | | |
| | | blue
| | green
| red
alpha/transparency



来自 pix_rgb[i][k] << 24您将所有位向左移动并将最右边的 24 位设置为 0。

所以 AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB会变成
BBBBBBBB000000000000000000000000
^^^^^^^^^^^^^^^^^^^^^^^^ <<24

现在与 (pix_rgb[i][k] << 24) >>> 24你可以把它想象成 BBBBBBBB000000000000000000000000 >>> 24在那里您将位向右移动,但同时保证大多数左位将填充为 0(如果我们使用 >> 24 我们可以用 1 填充它,如果第一个 B 也是 1)。

所以 BBBBBBBB000000000000000000000000将变成
000000000000000000000000BBBBBBBB
^^^^^^^^^^^^^^^^^^^^^^^^ >>>24

换句话说,我们得到了 int持有代表 的值只有蓝色。

简而言之
  • pix_rgb[i][k] << 24用于删除除 BBBBBBBB 之外的所有位
  • >>>24用于设置BBBBBBBB回到 int 的较低指数因此我们可以将其视为 0-255 范围内的值。
  • 关于java - (k<<24)>>>24在遥感图像读取中的意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412759/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com