EmguCV使用Stitcher类来拼接图像

using System;
using System.Windows;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.UI;
using Emgu.CV.Features2D;
using Emgu.CV.ML;
using Emgu.CV.Util;
using Emgu.Util;
using Emgu.CV.Face;
using Emgu.CV.VideoSurveillance;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using OpenTK.Graphics;
using Emgu.CV.Stitching;

namespace EmguCVHist
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Image<Bgr, byte> a = new Image<Bgr, byte>("1.jpg");
            Image<Bgr, byte> b = new Image<Bgr, byte>("2.jpg");
            Image<Bgr, byte> c = new Image<Bgr, byte>("3.jpg");
            Stitcher stitcher = new Stitcher(false);
            Mat outimg= new Mat();
            try
            {
                stitcher.Stitch(new VectorOfMat(new Mat[] { a.Mat, b.Mat, c.Mat }), outimg);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            imageBox1.Image = outimg;
        }
    }
}
时间: 2024-12-09 20:11:50

EmguCV使用Stitcher类来拼接图像的相关文章

关于Opencv2.4.x中stitcher类的简单应用

1.opencv2.4以上版本有stitcher类,可以简单方便的实现图像的拼接,目前只是简单的测试一下stitcher类的拼接功能,也是纠结了好长时间,最终发现是要在链接库中加上opencv_stitching249.lib(对于Release),opencv_stitching249d.lib(对于Debug)才行,不然会出现VS2013编译不成功,错误提示是:(注:红色数字249是当前opencv的版本号,根据你的opencv版本号,更改这个数值) 1>main.obj : error L

Qt可显示基本的图像类型,利用QImage、QPxmap类可以实现图像的显示

Qt可显示基本的图像类型,利用QImage.QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放.旋转). 1. Qt可显示的图像类型 参考Qt的帮助文档,可支持的类型,即可以直接读取并显示的格式有BMP.GIF.JPG.JPEG.PNG.TIFF.PBM.PGM.PPM.XBM.XPM. 2. Qt用如何显示图像 通常用QLabel显示图像,QLabel类有setPixmap()函数,可以用来显示图像.也可以直接用QPainter画出图像. 如果图像过大,直接用QL

JAVA代码根据经纬度范围计算WGS84与谷歌全球墨卡托包含的切片数目与拼接图像像素尺寸

根据项目需求编写的代码. 适用场景:在网络地图上,比如天地图与谷歌地图,用户用鼠标在地图上拉一个矩形框,希望下载该矩形框内某一层级的瓦片数据,并将所有瓦片拼接成一个完整的,包含地理坐标的tif图像. 那么在下载瓦片与拼接瓦片之前,用户希望能看到待下载的瓦片数量与待拼接图像的像素尺寸,再决定是否拼接. 该java代码根据该矩形框的经纬度范围与用户指定的瓦片层级,计算需要下载的瓦片数量与待拼接结果图像的像素尺寸. 支持EPSG4326经纬度与EPSG3857谷歌全球墨卡托投影.经纬度瓦片切图规则与天

FilterEngine 类解析——OpenCV图像滤波核心引擎(zz)

<2>FilterEngine 类解析——OpenCV图像滤波核心引擎 FilterEngine类是OpenCV关于图像滤波的主力军类,OpenCV图像滤波功能的核心引擎.各种滤波函数比如blur, GaussianBlur,到头来其实是就是在函数末尾处定义了一个Ptr<FilterEngine>类型的f,然后f->apply( src, dst )了一下而已. 这个类可以把几乎是所有的滤波操作施加到图像上.它包含了所有必要的中间缓存器.有很多和滤波相关的create系函数的

简单拼接图像的tile_images和tile_images_offset算子

有时候通常需要简单的拼图,不涉及图像融合之类的,仅仅是简单的平移将多张图拼接成一张图.tile_images和tile_images_offset就是用于简单拼图的2个算子. 谈到拼图,肯定有以下问题要明确: 1.将多少张图拼起来?由于是多张图,这需要一个元组来存储多张图片的集合. 2.是横向拼图,还是纵向拼图?这涉及拼图的方向. 3.是一张挨着一张无缝拼接吗?能不能做“有缝”的自由拼接?这涉及拼接偏移量. 我有这样四张图(分辨率300 * 150): 一.tile_images算子拼图 算子签

php 对url 操作类:url拼接、get获取页面、post获取页面(带传参)

/* * @brief url封装类,将常用的url请求操作封装在一起 * */ class URL{ private $error; public function __construct(){ $this->error = new ErrorCase(); } /** * combineURL * 拼接url * @param string $baseURL 基于的url * @param array $keysArr 参数列表数组 * @return string 返回拼接的url */

C#中Bitmap类 对图像の操作 可检测图片完整性

public static byte[] BitmapToBytes(Bitmap Bitmap)         {             try             {                 using (MemoryStream ms = new MemoryStream())                 {                     Bitmap.Save(ms, Bitmap.RawFormat);                     byte[]

OpenCV中Mat,图像二维指针和CxImage类的转换

在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转换和相应的对应关系. 一.OpenCV的Mat类到图像二值指针的转换 以下为函数代码: unsigned char** MatTopImgData(Mat img) { //获取图像参数 int row = img.rows; int col = img.cols; int band = img.c

[blog]基于SURF特征的图像与视频拼接技术的研究和实现(一)

基于SURF特征的图像与视频拼接技术的研究和实现(一) 一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条理清晰.内容完整.实现的技术具有市场价值.因此定下决心以这篇论文为基础脉络,结合实际情况,进行“基于SURF特征的图像与视频拼接技术的研究和实现”. 一.基于opencv的surf实现 3.0以后,surf被分到了"opencv_contrib-master"中去,操作起来不习惯,这里仍然选择一直在