使用Android的JavaCV的Stitcher中的ExceptionInitializerError
我在Android上使用JavACV使用此代码进行图像缝制: public void ImageStitching() { Stitcher stitcher = Stitcher.createDefault(false); MatVector images = new MatVector(2); images.put(0,cvLoadImage("sample1.png")); images.put(1,cvLoadImage("sample2.png")); IplImage result = new IplImage(null); int status = stitcher.stitch(images,result); if( status == Stitcher.OK ) { cvSaveImage("result.png", result); } } 但是当我执行它时,应用程序
0 2024-02-11
编程技术问答社区
有没有可能在Android中用Java做全景图像拼接?
我正在使用opencv4android,我知道与此主题有关的问题很多.其中大多数(带有答案的内容),建议使用C ++的解决方案,然后将其添加到文件夹Jni+ android.mk等中的项目中. 我可以做一些事情以避免C ++并调用Java中的每种方法? 如果OPENCV不可能,我愿意尝试替代方案. 谢谢. 解决方案 有一个 javacv - opencv库的Java界面,它是在Android应用程序中很受欢迎. 其他解决方案 如果您想使用OpenCV缝制 ,则需要使用JNI NDK进行缝制
0 2024-02-05
编程技术问答社区
如何优化多个图像的拼接?
我正在Visual Studio 2012(C ++)中进行多个图像缝制.我已经修改了 stitching_detailed.cpp 需求,并提供质量结果.这里的问题是,执行需要太多时间.对于 10张图像,它需要 110秒. 这是大部分时间所需的地方: 1)成对匹配 - 为10张图像需要 55秒!我正在使用球来查找特征点.这是代码: vector pairwise_matches; BestOf2NearestMatcher matcher(false, 0.35); matcher(features, pairwise_matches); matcher.collectGarbage(); 我尝试使用此代码,因为我已经知道图像的顺序: vector pairwise_matches; BestOf2NearestMatcher matcher(false, 0.35); Mat matchMask(fea
0 2024-02-05
编程技术问答社区
将多张图片对齐为一张图片?
什么是将图像结合在一起的好方法可能具有不同的旋转,曝光等,但具有相同的背景或其他固定参考? Adob​​e Photoshop可以使用其" PhotoMerge"功能来完成此操作. 我该如何编程?有没有开源应用程序? 解决方案 您想搜索image stitching或image registration,因为这些名称也是如此.此 Wikipedia文章有一些有用的信息.但是我只知道这样做的商业库,而不是任何开源库. 该过程的基本轮廓(在我知道的商业库中)是: 最初,您必须指定图像的粗略对齐,即 图像A位于图像B的左侧,它们的重叠少于10%. 图像C位于图像B的右侧,它们重叠10-20%等. 基于1)中的参数,该算法将尝试在重叠区域中找到唯一的"模板".然后,它将使用模板匹配技术在2个重叠的图像中找到模板./li> 项目2)可以重复几次以提供一系列匹配位置,然后可以使用这些位置来提供确切的拟合. 在步骤3中,您还可以考虑到旋转和镜头失真等失真
0 2024-01-24
编程技术问答社区
谷歌在安卓4.3/4.4上的PhotoSphere背后的算法
在"球体模式"下,Android 4.3/4.4上的相机应用程序可以从各种方向缝合到一个球形全景图中,质量非常好. 结果插图: content/uploads/2013/05/glass_team_pano_resized.jpg 我要做的是实现具有完全相同功能的iPad的应用程序. 我尝试了两种方法: OPENCV 2.4.8 OpenCV 2.4.8提供了图像缝合管道,乍一看似乎很有希望.但是,它有两个问题: 管道处理无序的输入照片,据我所知,它仅使用图像功能匹配来定位照片之间的几何关系,而当图像特征提取失败时,管道的性能很差(例如,空白照片(例如,白色)墙,蓝天).但是,iPad可以提供每个拍照的任意空间方向数据(虽然有噪音),但是我不知道如何在OpenCV缝线管道中使用这些数据. 我找不到像Photophere一样使用此管道的Photophere的方法来生成180x360度全景.在各个方向上用照片喂食管道只会产生一个具有弯曲图像边界
0 2024-01-23
编程技术问答社区
SceneKit-移除边缘边框的缝合线
我正在在立方体上显示纹理(请参阅 scenekit-盒子) 现在情况正常,但是结果显示了我在这里概述的一些立方体面之间的轻缝线(您在立方体内): 知道我怎么能摆脱它?输入纹理看起来像 因此,输入中存在一些不连续性.我正在使用自定义的场景几何形状,该几何图形除以将此纹理映射到立方体所做的不多.您可以找到上面提到的相关代码: https://stackoverflow.com/a/38961244/2054629 P> 解决方案 作为一种骇客解决方案,我将立方体的几何形状更改为略有立方体,更像是 使边缘消失(假设相机在内部).结果是裁剪了一点,但这并不那么明显. 我用来将3 x 8顶点的位置定义为: let _positions = [ SCNVector3(x:-halfSide, y:-halfSide, z: halfSide), SCNVector3(x: halfSide, y:-halfSide, z: halfSide), SC
6 2024-01-08
编程技术问答社区
如何在opencv中合并两个图像?
我已经计算了同型,删除了透视变换.我能够在一个窗口中显示两个图像,但无法合并.在这里是我的示例图像 - > 我使用的代码 - > cv::warpPerspective(image2,warpresult2,homography,cv::Size(2*image2.cols,image2.rows)); Mat imgResult(image1.rows,2*image1.cols,image1.type()); Mat roiImgResult_Left = imgResult(Rect(0,0,image1.cols,image1.rows)); Mat roiImgResult_Right = imgResult(Rect(image1.cols,0,image2.cols,image2.rows)); Mat roiImg1 = image1(Rect(0,0,image1.cols,image1.rows)); Mat roiImg2 = warpres
2 2023-11-20
编程技术问答社区
将所有 tiff 图像合并为单一图像
我有15个瓷砖或tiff文件一个文件夹,我希望将其与所有图像一起作为一个TIFF图像组合.所有瓷砖都应缝合为单个TIFF图像.我该怎么做? 到目前为止我尝试过的? import imageio import os path = "path/to/dir" image_path_list = os.listdir(path) with imageio.get_writer("new_image.tif") as new_image: for image_path in image_path_list: image = imageio.imread(path+image_path) new_image.append_data(image) 这将作为TIFF文件中的单独图像保存.我想将所有图像缝合在一起,并如下保存: 1,2,3 ...,15代表瓷砖.需要缝合为单个图像. 解决方案 给定一个目录,具有15张相同大小的图像
0 2023-07-21
编程技术问答社区
用python将多张图片串联成一张图片
我有15张图像(从1到15张).我想将这些图像缝合在一起,以形成一个单个图像.到目前为止,我尝试了什么? import numpy as np import PIL from PIL import Image import os filenames = [os.path.abspath(os.path.join(directory, p)) for p in os.listdir(directory) if p.endswith(('jpg', 'png'))] imgs = [PIL.Image.open(i) for i in filenames] min_shape = sorted( [(np.sum(i.size), i.size ) for i in imgs])[0][1] imgs_comb = np.hstack( (np.asarray( i.resize(min_shape) ) for i in imgs ) ) imgs_comb = PIL.I
6 2023-07-15
编程技术问答社区
用Python缝合图像
我试图将大约50张图像(全部以相同的287x287尺寸)缝合在一起.具体来说,顶行上应该有25张图像,而底部则应有25张图像,并且每两个图像之间也存在较小的距离. 我在尝试期间遇到了两个困难: 第一个问题是,一个文件夹中有25张图像'prefix-70',...,'prefix-94',而另一个具有相同名称'prefix-70',...,'prefix-94'的文件夹中的其他25个图像.我不知道没有冲突的python中的他们. 第二个问题是我编写了以下代码来读取一个文件夹图像以形成一行,但它会输出列. #!/usr/bin/python3.0 #encoding=utf-8 import numpy as np from PIL import Image import glob,os if __name__=='__main__': #prefix=input('Input the prefix of images:') prefix = 'p
8 2023-07-15
编程技术问答社区
图像拼接 Python
我必须使用Python和OpenCV将两个或多个图像缝合在一起. 我找到了此代码来查找关键点和匹配,但我不知道该如何继续. 请帮我! import numpy as np import cv2 MIN_MATCH_COUNT = 10 img1 = cv2.imread('a.jpg',0) # queryImage img2 = cv2.imread('b.jpg',0) # trainImage # Initiate SIFT detector sift = cv2.SIFT() # find the keypoints and descriptors with SIFT kp1, des1 = sift.detectAndCompute(img1,None) kp2, des2 = sift.detectAndCompute(img2,None) FLANN_INDEX_KDTREE = 0 index_params = dict(algorith
28 2023-07-10
编程技术问答社区
使用Python和OpenCV的图像拼接问题
我在24个缝合图像缝合到下一个25张图像之后就输出了下面的输出.在缝线之前很好. 有人知道为什么/何时会缝制这样的输出?这样的产出的可能性是什么?这可能是什么原因? 缝合代码遵循标准缝合步骤,例如查找关键点,描述符,然后匹配点,计算同型和图像的翘曲.但是我不明白为什么输出来了. 缝线的核心部分如下: detector = cv2.SIFT_create(400) # find the keypoints and descriptors with SIFT gray1 = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY) ret1, mask1 = cv2.threshold(gray1,1,255,cv2.THRESH_BINARY) kp1, descriptors1 = detector.detectAndCompute(gray1,mask1) gray2 = cv2.cvtColor(image2,cv2.COLOR_BGR
14 2023-07-06
编程技术问答社区
使用ECC的多光谱图像的图像对准失败
我试图将RGB图像与IR图像(单个通道)对齐. 目标是创建一个4通道图像R,G,B,IR. 为了做到这一点,我正在使用cv2.findTransformECC,如为了验证软件的工作,我使用了指南中的图像.它运行良好,所以我想将来自多个光谱的卫星图像相关联.不幸的是,我在这里遇到了问题. 有时算法收敛(年龄后),有时它立即崩溃,因为它无法收敛,而其他时候它会"找到"一个明显错误的解决方案.附件您会发现两个图像,从人类的角度来看,易于匹配,但算法失败.这些图像不会以任何方式旋转,它们只是完全相同的图像(检查边界),因此预期会进行翻译运动.图像是奥地利的Neusiedlersee湖的图像,来源是Sentinelhub. 编辑:使用"有时",我指的是使用Sentinel的不同图像.一对图像始终具有相同的结果. 我知道ECC不是基于功能的,它可能在这里遇到问题. 我还读到,它在某种程度上取决于初始的翘曲矩阵. 我的问题是: 我正在使用cv2.findTransf
6 2023-06-27
编程技术问答社区
在Python中对许多图像进行快速和稳健的图像拼接算法?
我有一个固定的相机,该相机可以快速拍摄连续移动的产品的照片,但在相同角度(翻译透视图)处于固定位置.我需要将所有图像缝合到全景图片中.我已经尝试使用类缝制器.它奏效了,但是花了很长时间来计算. 我还尝试使用SIFT检测器FnnbasedMatcher,查找同谱并翘曲图像来使用另一种方法.如果我只使用两个图像,此方法可以正常工作.对于多个图像,它仍然无法正确缝制它们.有人知道这种情况的最好,最快的图像缝合算法吗? 这是我的代码,使用缝合类. import time import cv2 import os import numpy as np import sys def main(): # read input images imgs = [] path = 'pics_rotated/' i = 0 for (root, dirs, files) in os.walk(path): images = [f for f
6 2023-06-24
编程技术问答社区
用Python捕获嵌入式谷歌地图图像,无需使用浏览器
我注意到,从Google Maps页面上,您可以获得"嵌入"链接以放入iFrame并将地图加载到浏览器中. (这里没有新闻) 图像大小可以调整为很大,因此我有兴趣将SOM大图像作为单个.pngs. 更具体地说,我想从边界框(右上和下左坐标)定义一个矩形区域,并以适当的变焦因子获取相应的图像. 但我的问题是:如何使用Python将此地图的"像素内容"作为图像对象? (我的理由是:如果浏览器可以获取并呈现此类图像内容,那么Python也应该能够做到这一点). 编辑:这是显示我的示例映射的HTML文件的内容:
14 2023-06-22
编程技术问答社区
是否有软件可以在不旋转或拉伸的情况下将大量的小数字图像拼接起来?
我有很多小图像(360x192),作为DOS 2D计算机游戏的屏幕截图.他们具有不错的重叠,我想将它们拼接在一起成一个大型复合材料.由于其性质,每个后续图像将在下一个或上一个图像上适合像素完美.因此,无需旋转,需要拉伸或扭曲. 那里有很多软件可以将照片拼接在一起.但是可悲的是,即使他们明确指示不这样做. 是否有软件可以尝试进行像素完美缝线? 解决方案 Mathematica 8功能可以做到这一点: ImageAlign[img1, img2, "Transformation" -> "Translation"] FindGeometricTransform[img1, img2, "Transformation" -> "Translation"] 通过将选项"转换"设置为"翻译",您可以保证结果转换将不会提到任何"扭曲". 文档中的更多示例: 我知道可以将Mathematica与Perl联系起来,但我还没有尝试过. 编辑:使用您发送的
2 2023-05-24
编程技术问答社区
多条带状混合使接缝更明亮、更明显
我试图使用多带混合物将两个预击图像无缝地缝合在一起.我有两个输入图像(已经扭曲了)和一个掩码.但是,当我应用MBB时,接缝周围的区域发光的亮度明亮,因此它们变得更加明显,这与这里的目标相反.我绝对不知道我在做什么错. 更好地解释问题,以下是图像和输出: 目标: 来源: mask: ,一旦我将源图像融合到目标中,这就是我得到的: 这是我的代码供参考: import cv2 as cv2 import numpy as np import sys def blend(A, B, m, canvas, num_levels=6): trimmer = cv2.bitwise_or(canvas, m) # to trim the blurry edges around the image after blending m[m == 255] = 1 GA = A.copy() GB = B.copy() GM
6 2023-05-22
编程技术问答社区
图像拼接:NullPointerException
我已经运行了此代码.似乎是结果.结果未生成: public class ImageStitching { public static void main(String[] args){ MatVector images = new MatVector(2); images.put(0,cvLoadImage("sample1.png")); images.put(1,cvLoadImage("sample2.png")); IplImage result = new IplImage(null); int status = stitcher.stitch(images,result); if( status == stitcher.OK ) { cvSaveImage("result.png", result); }
26 2023-05-10
编程技术问答社区
在使用OpenCV进行图像拼接时遇到一些困难
我目前正在使用Visual Studio 2010上使用OpenCV 2.3.1进行图像缝线,但我遇到了一些麻烦. 问题描述 我正在尝试编写一个代码,用于缝制从几个摄像机派生的多个图像(大约3〜4),i,e,代码应继续执行图像缝合,直到我要求它停止. . 以下是我到目前为止所做的: (为了简化,我将仅用几个单词替换代码的某个部分) 1.Reading frames(images) from 2 cameras (Currently I'm just working on 2 cameras.) 2.Feature detection, descriptor calculation (SURF) 3.Feature matching using FlannBasedMatcher 4.Removing outliers and calculate the Homography with inliers using RANSAC.
22 2023-05-10
编程技术问答社区
文字的全景拼接
我正在寻找一个很好的全景缝制库中的文字.我尝试了 这些图像彼此之间的重叠约为45%. 如果有一个可以使提到的库之一的选项在文本图像上工作良好,而不是找到另一个库,那就太好了. 我需要图书馆在Linux Arm上工作. 解决方案 文本缝线不需要匹配方法,该方法适合旋转,而仅对翻译. opencv 便利地提供了这样的功能.它被称为: > . 我将开发的解决方案基于此OpenCV的功能. 管道 我现在将解释解决方案的主要步骤(有关更多详细信息,请查看提供的代码). 匹配过程 为了匹配两个连续的图像(在matchImages函数中完成,请参见代码bellow): 我们通过将第一个图像的45%(H_templ_ratio)作为所描绘的Bellow来创建A 模板图像: 此步骤是在我的代码中通过函数genTemplate完成的. 我们在第二张图像中添加黑色边缘(我们想找到模板).如果文本在输入图像中未对齐,则需要此步骤(尽管在这些示例
26 2023-05-10
编程技术问答社区