Opencv中的问题
int?ux?=?((dx?>?0)?<<?1)?-?1;//x的增量方向,取或-1这句什么意思?
?if?((eps?<<?1)?>=?dx)?这句是什么情况下为真呢?
[解决办法]
主要是为了速度, 用位运算来代替 乘除计算,找本c的书,看看位运算吧
比如4,二进制 是 100
往左一位就是 1000, 变成乘以2 等于8 了
往右一位就是 10. 变成除以2,等于4 了
int ux = ((dx > 0) << 1) - 1;//x的增量方向,取或-1
==>
dx就是你所说x的增量吧
所以当dx>0的时候,dx>0是true 也是1, <<1 二进制往右移1位,也就是乘以2,
所以ux = 1
而dx<0的时候, ux = -1 (dx>0 是false 也是0)
if ((eps << 1) >= dx)
==》就是判定 eps*2 》=dx