程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像?

开发过程中遇到OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像的问题如何解决?下面主要结合日常开发的经验,给出你关于OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像的解决方法建议,希望对你解决OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像有所启发或帮助;

我认为FlAnn可能不是您想要在此处使用的匹配项。首先,确实,由于要转换为灰度,因此黑点,图像边缘等可能会包含在功能集中,这是您不想要的。其次,弗兰使用各种方法来构建特定的描述符,以便快速搜索图像数据库。它用于CBIR,而不用于单应性估计。

相反,只需使用SIFTorSURFORBor的常规方法即可BRISK。请注意,所有这些都允许@H_702_5@mask为其关键点检测步骤添加一个,以便您可以从Alpha通道创建遮罩以忽略关键点。有关SIFTSURFORB以及BRISK更多信息,请参见OpenCV文档。

解决方法

我一直在从事一个项目,在该项目中,我将以割草机模式飞行的无人机中的图像拼接在一起。我能够将一次通过的图像缝合在一起(由于stackoverflow上的许多答案),但是当我尝试横向缝合两个单独的通道时,我的方法产生的转换是毫无意义的。

这里是代码,我一直在使用估计两者之间的单应,basecurr

base_gray = cv2.cvtColor(base,cv2.COLOR_BGRA2GRAY)
curr_gray = cv2.cvtColor(curr,cv2.COLOR_BGRA2GRAY)

detector = cv2.oRB_create()
base_keys,base_desc = detector.detectAndCompute(base_gray,NonE)
curr_keys,curr_desc = detector.detectAndCompute(curr_gray,NonE)

FLAnn_INDEX_LSH = 6
flAnn_params = Dict(algorithm = FLAnn_INDEX_LSH,table_number = 12,key_size = 20,multi_probe_level = 2)
search_params = Dict(checks=100)
matcher = cv2.FlAnnBasedMatcher(flAnn_params,search_params)
matches = matcher.match(base_desc,curr_desc)

max_dist = 0.0
min_dist = 100.0

for match in matches:
    dist = match.distance
    min_dist = dist if Dist < min_dist else min_dist
    max_dist = dist if Dist > max_dist else max_dist

good_matches = [match for match in matches if match.distance <= 10 * min_dist ]

base_matches = []
curr_matches = []
for match in good_matches:
    base_matches.append(base_keys[match.queryIdx].pt)
    curr_matches.append(curr_keys[match.TrainIdx].pt)

bm_final = np.asarray(base_matches)
cm_final = np.asarray(curr_matches)

# find perspective transformation using the arrays of corresponding points
transformation,hom_stati = cv2.findHomography(cm_final,bm_final,method=cv2.RANSAC,ransacReprojThreshold=1)

正如我所说,这是行不通的。是因为透明背景干扰了计算吗?

大佬总结

以上是大佬教程为你收集整理的OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像全部内容,希望文章能够帮你解决OpenCV,Python:如何拼接两个具有不同大小和透明背景的图像所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。