Opencv的抠图的思路非常简单,就是对一个像素点进行判断,如果是需要剔除的像素,就把该像素的A通道改为0,即变为透明了。
今天就来实现下面这个效果把一个白色的透明通道,抠除的效果。
同样,要对图像操作,首先需要对图片进行读取,这是非常基本的了。而今天要获取图像上的一个像素点,那么就需要用到OpenCVForUnity这个插件中的获取像素点的方法。int[] get()
他是Mat容器上的实例方法他会返回一个Int数组,如果是JPG,这个数组的长度就是3,分别代表RGB值,如果是PNG,这个数组长度就是RGBA值。
首先我们获取图片的Mat,并把尺寸改小增加运行效率。
因为Logo是JPG,所以我们要把这个JPG装进一个四通道的容器里去。
而且我们知道图片中白色的RBA 是(255,255,255),而黑色的RBA是(0,0,0)
而我们只要判断这个像素点是不是等于255就能判断他是不是白色拉。而Mat.Put则是修改图片像素的方法,前面是图片的坐标点,后面跟着RGBA值,并保持原来的值,