Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 基于EMGU-CV的图像拼接_Image Processing_Image Stitching - Fatal编程技术网

Image processing 基于EMGU-CV的图像拼接

Image processing 基于EMGU-CV的图像拼接,image-processing,image-stitching,Image Processing,Image Stitching,我想做图像拼接,以产生一个全景图像在一个位置大约360度。现在我的编码是这样的 这是缝合按钮编码时的捕获 int n=1; 字符串文件名; HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(“http://192.168.0.4/view/snapshot.shtml?picturepath=/jpg/image.jpg"); res=request.GetResponse();/。GetResponse(); 字符串[]CapturedIma

我想做图像拼接,以产生一个全景图像在一个位置大约360度。现在我的编码是这样的

这是缝合按钮编码时的捕获
int n=1;
字符串文件名;
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(“http://192.168.0.4/view/snapshot.shtml?picturepath=/jpg/image.jpg");
res=request.GetResponse();/。GetResponse();
字符串[]CapturedImage=新字符串[28];
Image[]TotalImage=新图像[28];
做
{
fileName=@“D:\Ervin Loong(116834P)\Program Testing\Images\“+”Image“+(n++)+”.jpg;//文件位置和文件名。
}
while(System.IO.File.Exists(fileName));//检查以前保存的现有文件。如果是,请添加另一张新图片。
{
AMCLiveFeed.SaveCurrentImage(0,文件名);
res.Close();
}
如果(n==29)
{
对于(int i=0;i<28;i++)//i<10-保存10个图像
{
CapturedImage[i]=@“D:\Ervin Loong(116834P)\Program Testing\Images\“+”Images“+(i+1)+”.jpg”;
TotalImage[i]=新图像(CapturedImage[i]);
}
尝试
{ 
使用(Stitcher-Stitcher=new-Stitcher(false))//虽然Stitcher类是为GPU加速而构建的,但必须传递一个false标志才能启用CPU处理。因为GPU尚未实现。
{
图像捕获结果=缝合器缝合(总图像);
imgbxdisplaysitched.Image=CapturedResult;//imagebox显示缝合的结果。
}
}
最后
{
foreach(TotalImage中的图像处理)
{
DisposeImage.Dispose();
}
}
}

问题是什么?目前该程序只能水平缝合,不能垂直缝合,当它尝试垂直缝合时,打开cv:unable to allocate ____; bytes(无法分配字节)错误将发生,因此如何解决?您的问题可能不够详细。告诉我们更多关于代码的信息:
TotalImage
来自哪里?是什么让你认为它只能水平缝合?你做过测试吗?你有截图给我们看吗?我已经在主线程中添加了编码,看看你是否能理解,但是对于截图,我无法从我的计算机中卸载它。
        int n = 1;
        String fileName;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.0.4/view/snapshot.shtml?picturepath=/jpg/image.jpg");
        res = request.GetResponse();//.GetResponse();
        string[] CapturedImage = new string[28];
        Image<Bgr, Byte>[] TotalImage = new Image<Bgr, Byte>[28];
        do
        {
            fileName = @"D:\Ervin Loong (116834P)\Program Testing\Images\" + "Image" + (n++) + ".jpg"; // File location & Filename.
        }
        while (System.IO.File.Exists(fileName)); // check for existing previously saved files. If yes, add another new picture.
        {
            AMCLiveFeed.SaveCurrentImage(0, fileName);
            res.Close();
        }
        if (n == 29)
        {
            for (int i = 0; i < 28; i++) // i < 10 - save 10 images
            {
                CapturedImage[i] = @"D:\Ervin Loong (116834P)\Program Testing\Images\" + "Image" + (i + 1) + ".jpg";
                TotalImage[i] = new Image<Bgr, byte>(CapturedImage[i]);
            }

            try
            { 
                using (Stitcher stitcher = new Stitcher(false)) //Although the Stitcher class is built for GPU acceleration, a false flag must be passed to enable CPU processing. As GPU is not implemented yet.
                {
                    Image<Bgr, Byte> CapturedResult = stitcher.Stitch(TotalImage);
                    IMGBXDisplayStitched.Image = CapturedResult; //imagebox displays stitched results.
                }
            }

            finally
            {
                foreach (Image<Bgr, Byte> DisposeImage in TotalImage)
                {
                    DisposeImage.Dispose();
                }
            }

        }