编辑:以下是任何有问题的人的完整代码github.com
我正在尝试使用SIFT和BOW进行图像识别项目.到目前为止,我正在努力训练和建立我的字典.我已经读过5个不同类的图像,计算描述符并将它们全部添加到python列表([])中.现在,我正在尝试使用python版本的BOWMeansTrainer来将我的描述符聚类为k = 5(对于5个类,这是正确的吗?).我正在尝试传递cluster()我的描述符向量,但我收到了错误
Traceback (most recent call last):
File "C:\Python27\Project2\beginning.py", line 40, in <module>
bow.cluster(des)
TypeError: descriptors data type = 17 is not supported
Run Code Online (Sandbox Code Playgroud)
我不确定我的numpy数组的格式是什么,有没有人有想法?
sift = cv2.SIFT()
descriptors = []
for path in training_paths:
image = cv2.imread(path)
print path
gray = cv2.cvtColor(image, cv2.CV_LOAD_IMAGE_GRAYSCALE)
kp, dsc= sift.detectAndCompute(gray, None)
descriptors.append(dsc)
des = np.array(descriptors)
k=5
bow = cv2.BOWKMeansTrainer(k)
bow.cluster(des)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我继续附加sift描述符,然后尝试转换为numpy数组(所需的格式).
我有两个分支,A) 开发和 B) 功能
我在 B 上工作,现在准备将 B 合并到 A。A 显然已经完成了很多工作,通过拉取请求合并了许多其他功能分支。我拉出 A 的最新头并出于测试目的,假设我将 A 合并到 B (注意,我在两个方向上都有相同的行为,但我试图找出问题所在)。
我将 A 合并到 B,但是在解决合并冲突后出现了很多编译器错误。我注意到实际上 A 中包含的代码只是没有将其传递给 B。这会导致构建失败,并且缺少很多东西(它至少是一个大的代码提交价值)。
我追踪了我在从 A 到 B“合并”时遇到问题的提交。虽然它不是没有合并,但当我在合并后签出 B 时键入“git log”时我确实看到了它。出于某种原因,与提交相关的实际更改会消失。有问题的代码没有合并冲突,我确信我在处理 B 时从未触及过该部分,因此其他任何事情都可能发生。
关于“丢失”提交(即使我在分支日志中看到它),我应该怎么做才能恢复实际更改?我会使用 diff 工具,但我担心这是一个更大问题的症状,我不知道的其他代码也可能丢失。
我对 git 相当陌生,所以我有点不确定如何解决这个问题。请让我知道是否还有其他有用的信息。
到目前为止我尝试过的:
将 A 合并到 B,提交在那里,但提交的代码没有将 B 合并到 A,相同代码/提交的相同问题
我试过变基,但分支因许多冲突而被许多提交关闭。所有提交也在服务器上,所以从我读过的内容来看,这可能是一个坏主意。如果我应该尝试在某个方向(A->B 或 B->A)重新定位,请告诉我。