
opencv
文章平均质量分 53
setsuodu
大概吧
展开
-
使用OpenCVForUnity分割图片
最近的一个需求,引申出对图片裁切、拼接、矫正相关的系列需求,不知不觉已经使用了4-5种方法。如unity的GetPixels32(),SetPixels32()有512*512的尺寸限制问题,如C#中的system.drawing有跨平台的问题等。最终感觉使用opencv是综合效果最好的一种选择。今次实例如图,把原图按中心十字裁切成4张新图,显示在4个新的Image上。using Sy原创 2017-12-29 14:03:46 · 3793 阅读 · 0 评论 -
OpenCVForUnity绘制直方图
这次案例涉及到的新要点有,直方图计算,直方图绘制,画线。为了演示方便,做了一张灰度图的直方图,聪明的小朋友可以尝试实现画一下RGB直方图。其实函数非常简单,关键是理解OpenCVForUnity封装后的数据类型,搞清楚这些,闭着眼睛往函数里填值就可以了。void Start(){ grayMat = Imgcodecs.imread(Application.dataPath + "/原创 2018-02-07 17:14:08 · 826 阅读 · 1 评论 -
OpenCVForUnity膨胀与腐蚀
膨胀与腐蚀属于图像的形态学范畴的基本转换函数。形态学通常用于寻找图像中的明显的极大、极小区域,以及求图像的梯度。膨胀 dilate膨胀是指将图像(srcMat)与核(kernel)进行卷积。/// /// 膨胀/// void OnDilate(){ dstMat = new Mat(); int ksize = 7; Mat kernel = new原创 2018-02-07 12:51:50 · 1270 阅读 · 0 评论 -
OpenCVForUnity掩码水印
代码public class roi : MonoBehaviour{ [SerializeField] private Image m_srcImage; Mat srcMat, logoMat; void Start() { srcMat = Imgcodecs.imread(Application.dataPath + "/Text...原创 2018-02-07 11:56:41 · 762 阅读 · 0 评论 -
OpenCVForUnity色度图
一个分支小任务,讲一讲ColorMap的使用。插件提供了13种固定的渐变色卡,Imgproc.applyColorMap(Mat src, Mat dst, int colormap) 的第三个参数取值范围只能是0-12。如果要使用自定义的色卡,需要使用Core.LUT(Mat src, Mat lut, Mat dst)函数。 * public const int COLORMAP_AU原创 2018-02-07 09:29:28 · 1161 阅读 · 0 评论 -
OpenCVForUnity二值化和灰度化
随着csdn博客系统升级,尝试使用md写文章,感觉还不错。继续使用OpenCVForUnity处理图片,今次的效果是灰度化和二值化,当所有功能实现后,可能会做出一个unity版的美图秀秀。首先我们来确定一下两者的概念。二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,原创 2018-02-05 11:30:48 · 3444 阅读 · 3 评论 -
OpenCVForUnity模糊与锐化
今次展示OpenCVForUnity插件中,模糊与锐化的处理。演示了比较多不同的算子,代码量看起来比较多。先来搭建一个简单的调试场景,用Toggle切换,可以直观地比较效果。噪声// 椒盐噪声void OnSalt(bool value){ m_blurImage.enabled = true; if (!value) return; //这里仅写了单原创 2018-02-06 15:09:40 · 2748 阅读 · 2 评论 -
OpenCVForUnity图像反色
由于插件数据类型、API与c++版差异较大,这里需要花些功夫学习下Mat中像素的操作。细心的小朋友通过上一篇《锐化与模糊》中关于椒盐噪声的实现,可能已经学习到了具体的方法。//用一个byte[]类型byteArray容器,从mat中取像素。byte[] byteArray = new byte[dstMat.width() * dstMat.height()];Utils.copyFrom原创 2018-02-06 15:53:47 · 1792 阅读 · 1 评论 -
OpenCVForUnity边缘检测(梯度)与滤波
OpenCV中,和边缘检测相关的算子有索贝尔,拉普拉斯滤波,Canny,Scharr等,另外还有一些解决特定问题的算子。这次的实例,尝试使用多种算子,对图片进行边缘提取。public class gradient : MonoBehaviour{ [SerializeField] private Image sobelImage, laplaceImage, cannyImage原创 2018-02-05 16:11:07 · 2317 阅读 · 2 评论 -
OpenCVForUnity使用Haar分类器检测人脸和眼睛
Github上有许多已经训练好的分类器,可以直接拿来试用。 void Start(){ //训练集路径 haarcascade_frontalface_default_xml_filepath = Application.dataPath + "/Cascades/haarcascade_frontalface_default.xml"; haarcascade...原创 2018-02-10 19:19:49 · 4529 阅读 · 12 评论 -
使用OpenCVForUnity拼接图片
沿着上一篇关于图片裁切反向操作。演示Core.hconcat()水平拼接, Core.vconcat()垂直拼接函数的使用。原创 2017-12-29 18:20:19 · 2599 阅读 · 9 评论 -
OpenCVSharp特征点匹配及全景拼接
之前连续写了一些列关于OpenCV在Unity平台的入门基础,这次增加难度,来一个特征提取和拼接的案例。由于OpenCVForUnity没有实现Stitcher的功能,转而使用OpenCVSharp。可以去github的官方项目里找最新的OpenCVSharp.dll文件,不过官方提供的是.Net4.6版本(没有尝试是否可以自行编译成.Net3.5)。那我们就先把Unity项目设置为4.6的框架。...原创 2018-02-08 12:37:26 · 10938 阅读 · 5 评论