Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 图像处理按位指令概念解释_Image Processing_Bitwise Operators - Fatal编程技术网

Image processing 图像处理按位指令概念解释

Image processing 图像处理按位指令概念解释,image-processing,bitwise-operators,Image Processing,Bitwise Operators,该代码来自一个Qt库,该库帮助生成具有图像形状的按钮;它扫描所有行y和所有宽度x,当像素的rgb部分与遮罩部分重合时,会产生以下变化(mp是行开头的指针,并预先填充0xff): *(mp+(x>>3))&=~(1从代码外观上看,mp指向每像素图像1位的当前行。代码清除代表x处像素的位。它将x偏移量转换为字节偏移量(x>>3)然后逻辑and是一个掩码的字节,该掩码是由字节内X位置左移的倒数1创建的。对于凡人;好的,背景:;&=意味着我们要进行位乘法;在rhs中,~是补码,所以它用0翻转1;反之亦然

该代码来自一个Qt库,该库帮助生成具有图像形状的按钮;它扫描所有行y和所有宽度x,当像素的rgb部分与遮罩部分重合时,会产生以下变化(mp是行开头的指针,并预先填充0xff):


*(mp+(x>>3))&=~(1从代码外观上看,mp指向每像素图像1位的当前行。代码清除代表x处像素的位。它将x偏移量转换为字节偏移量(x>>3)然后逻辑and是一个掩码的字节,该掩码是由字节内X位置左移的倒数1创建的。

对于凡人;好的,背景:;&=意味着我们要进行位乘法;在rhs中,~是补码,所以它用0翻转1;反之亦然;二进制中的7在末尾有3个1,在前面全是零,因此,x&7保留x中的最后3位;在右移操作中与>结合使用;这意味着当我们“跳转”时,每增加8个x,我们将修改同一字节(mp的字符类型)的位置,我们将只使用一个字节;当x=9时,它将转到mp+1,当x=17时,它将转到mp+2;所以它就像整数运算中的x/2^3,但在一个移位运算中;好的,现在我们有了理解整个事情的元素

tmask已经预先填充了0xff,全部为1;这意味着它将在&=操作时处于被动状态,保留rhs指令的内容;这意味着如果if语句中出现命中,检查特定像素是否等于背景,则执行此行,我们将擦除与像素相关的特定位)