首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Opencv中的有关问题

2013-09-05 
Opencv中的问题int?ux??((dx??0)??1)?-?1//x的增量方向,取或-1这句什么意思??if?((eps??1)??dx)?

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

热点排行