Ejemplo n.º 1
0
        public Image2Stream()
        {
            // Stream -> IplImage
            using (FileStream stream = new FileStream(FilePath.Image.Lenna, FileMode.Open))
                using (IplImage img = IplImage.FromStream(stream, LoadMode.Color))
                {
                    CvWindow.ShowImages(img);

                    // IplImage -> Stream
                    using (MemoryStream ms = new MemoryStream())
                    {
                        img.ToStream(ms, ".tiff");
                        ms.ToString();
                    }
                }

            // Stream -> CvMat
            using (FileStream stream = new FileStream(FilePath.Image.Lenna, FileMode.Open))
                using (CvMat mat = CvMat.FromStream(stream, LoadMode.Color))
                {
                    mat.ToString();

                    // CvMat -> Stream
                    using (MemoryStream ms = new MemoryStream())
                    {
                        mat.ToStream(ms, ".bmp");
                        ms.ToString();
                    }
                }
        }
Ejemplo n.º 2
0
        public ActionResult Canny(HttpPostedFileBase imageData)
        {
            // 入力画像からIplImageを読み込み
            using (var image = IplImage.FromStream(imageData.InputStream, LoadMode.Color))
            {
                // グレースケール化・Cannyエッジ検出
                using (var grayImage = new IplImage(image.Size, BitDepth.U8, 1))
                    using (var cannyImage = new IplImage(image.Size, BitDepth.U8, 1))
                    {
                        Cv.CvtColor(image, grayImage, ColorConversion.BgrToGray);
                        Cv.Canny(grayImage, cannyImage, 60, 180);

                        // Canny画像をPNGエンコードでバイト配列に変換し、さらにBase64エンコードする
                        byte[] cannyBytes = cannyImage.ToBytes(".png");
                        string base64     = Convert.ToBase64String(cannyBytes);
                        // ビュー変数に設定
                        ViewBag.Base64Image = base64;
                    }
            }
            return(View());
        }