设a和b是具有8位整数(0-255)的相同大小的向量.我想计算这些向量不同的位数,即通过串联这些数字的二进制表示形成的向量之间的汉明距离.例如:
a = [127,255]
b= [127,240]
Run Code Online (Sandbox Code Playgroud)
使用numpy库
np.bitwise_xor(a,b)
# Output: array([ 0, 15])
Run Code Online (Sandbox Code Playgroud)
我现在需要的是二进制表示上述数组的每个元素,并在数组的所有元素中计数1的数量.上面的例子将给出汉明距离0 + 4 = 4.在Python中任何快速而优雅的解决方案?
我正在尝试从矩形图像中提取特征。但是我想忽略图像的某些部分,以免从图像内部的这些区域提取任何特征。我可以想到两种方法。
a)从整个图像中获取特征,并使用关键点丢弃那些位于被忽略区域内的特征。但是这种方法不是首选,因为我限制了要从图像中提取的最大特征数量,以后再丢弃将无助于获得恒定数量的特征。
b)使图像那部分的像素为零。但是我认为SIFT / ORB或其他特征提取算法可能会将其检测为黑色矩形,并在此黑框的边缘部分错误地创建了特征。虽然对此不确定。
有人可以确认问题陈述的最佳方法吗?