图像翻转 学习遍历像素

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//EMGU
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.Util;
using System.Threading;

using System.Diagnostics;
using System.Runtime.InteropServices;
using Emgu.CV.Util;

namespace remap
{
    public partial class Form1 : Form
    {      
        public Form1()
        {
            InitializeComponent();
            Image<Bgr, byte> srcImage = new Image<Bgr, byte>("lakeWater.jpg");   
            if (srcImage ==null)
            {
                MessageBox.Show("图片不存在!");
            }
            输出矩阵定义
            //Image<Bgr, byte> resultImage = new Image<Bgr, byte>(srcImage.Width, srcImage.Height);
            X与Y方向矩阵    
            //Image<Bgr, byte> xMapImage = new Image<Bgr, byte>(srcImage.Width, srcImage.Height);
            //Image<Bgr, byte> yMapImage = new Image<Bgr, byte>(srcImage.Width, srcImage.Height);    
            取图像的宽高   
             byte[, ,] data = srcImage.Data;
             byte[, ,] data1 = srcImage.CopyBlank().Data;
             //图像遍历
             for (int i = 0; i < srcImage.Width; i++)
             {
                 for (int j = 0; j < srcImage.Height; j++)
                 {
                     //x与y均翻转

                     for (int k = 0; k < srcImage.NumberOfChannels ; k++)
                     {

                         data1[j, i, k] = data[srcImage.Height-j-1, srcImage.Width - i - 1, k];
                     }

                 }
             }
            //CvInvoke.cvRemap(srcImage, resultImage, xMapImage, yMapImage, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR, Emgu.CV.CvEnum.BORDER_TYPE.CONSTANT);
             Image<Bgr, byte> dst = new Image<Bgr, byte>(data1);
                imageBox1.Image = srcImage;
                imageBox2.Image = dst;
        }
      
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值