你的位置:首页 > 软件开发 > ASP.net > [OpenCVsharp]利用指针实现高速访问像素RGB值

[OpenCVsharp]利用指针实现高速访问像素RGB值

发布时间:2015-10-07 16:00:11
先简单介绍下什么是OpenCVsharp,内容取自百度百科OpenCvSharp是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,有详细的使用样例供参考。该库采用LGPL发行,对商业应用友好。使用OpenC ...

先简单介绍下什么是OpenCVsharp,内容取自百度百科

OpenCvSharp是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,有详细的使用样例供参考。该库采用LGPL发行,对商业应用友好。使用OpenCvSharp,可用C#,VB.NET等语言实现多种流行的图像处理(image processing)与计算机视觉(computer vision)算法。

 

下面进入正题:

 

代码实现目的: 通过获取像素值然后进行判断,最终对像素值进行更改。

先介绍个比较低速效率不高的方法

 

下面是用指针实现快速高效访问图片像素值

 
private void SearchBlockforYIQ(IplImage img){  using (IplImage src = img.Clone())  using (IplImage dst = new IplImage(src.Size, BitDepth.U8, 3))  {    src.CvtColor(dst, ColorConversion.BgrToRgb);//将bgr转为rgb     int h, w;    int index;    double y, i, q;     unsafe    {      byte* ptr = (byte*)dst.ImageData;      byte r, g, b;      for (h = 0; h < dst.Height; ++h)      {//270        for (w = 0; w < dst.Width; ++w)        {//360          index = (dst.WidthStep * h) + (w * 3);          r = ptr[index];          g = ptr[index + 1];          b = ptr[index + 2];           y = (0.299 * r) + (0.587 * g) + (0.114 * b);          i = (0.596 * r) + ((-0.274) * g) + ((-0.322) * b);          q = (0.211 * r) + ((-0.523) * g) + (0.312 * b);           if ((i >= 1) && (q < -4.0))//检测黄色          {//变更为白色(白色的rgb值都是255)            ptr[index] = 255;            ptr[index + 1] = 255;            ptr[index + 2] = 255;          }          else          {//变更为黑色(黑色的RGB值都是0)            ptr[index] = 0;            ptr[index + 1] = 0;            ptr[index + 2] = 0;          }        }      }    }    pictureBoxIpl2.ImageIpl = dst;  }}

以上是全部代码,20~23行部分是核心部分。仅供参考!

 

PS: unsafe的使用方法

不知道的同学直接使用上述代码的话,在unsafe部分可能会提示出错,这时我们就要根据下面步骤来设置:

1. 右击项目选择属性

[OpenCVsharp]利用指针实现高速访问像素RGB值

 

这样设置后就可以正常使用unsafe了。

转载请注明原处: http://www.harleygwak.com/?p=467


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:[OpenCVsharp]利用指针实现高速访问像素RGB值

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录