OpenCV For Unity 给图片打水印

ROI 全称为Region of Interest 感兴趣的区域,为什么我们要讲这个呢?因为他在OpenCV里是一个非常重要的概念,因为给图片打水印就要用到他,你可以想象成图片上要操作的区域。比如给图片打水印,就是在图片上的一个区域,叠加上另外一个图片,就是我们统称的最粗暴的水印打法啊。下面就是我们要实现的效果啦;


水印

首先是去把图片读取两张图片读取进来,上一篇我们已经写过把图片怎么读取啦。


我们获取到了两张图片啦!然后下面就是我们要在主图片里建立一个ROI[蒙版或者操作区域]

下面就是建立ROI的几种形式

我目前知道的四种方法

然后我们就在图片的(0,0)的位置建立一个100X100的ROI区域,用来操作啦。

然后我们把logo尺寸缩小到100x100,大了小了都不行。也许是像素点一一对应的吧。


imgproc图片处理类,进行水印缩放

    然后我们把logo拷贝给这个水印区域。


然后水印就被加好了

最后再把图片处理一下,把他转成texture2d那个RAWIMAGE就可以看到效果了。




下面是完整的代码:

public class addLogo: MonoBehaviour

{

    // Use this for initialization

    void Start()

    {

        Utils.setDebugMode(true);

        //主图片

        Mat src = Imgcodecs.imread(Application.streamingAssetsPath + "/lena.jpg");

        //logo图片

        Mat logo = Imgcodecs.imread(Application.streamingAssetsPath + "/logo.jpg");

        //

        // Imgproc.cvtColor(src,src,Imgproc.COLOR_BGR2RGB);

        // Imgproc.cvtColor(logo,logo,Imgproc.COLOR_BGR2RGB);

        // Imgproc.resize(src, src, new Size(500, 500));

        //获取ROI的几种方式 Region of Intrest

        //1.直接根据材质建立材质

        // Mat m = new Mat(src,new Range(0,0+logo.rows()),new Range(0,0+logo.cols()));

        //2.直接调用Mat里submat方法

        // Mat m = src.submat(0,100,0,100);

        //3.直接调用Mat里submat方法

        // Mat m = src.submat(new Range(0,100),new Range(0,100));

        //4.直接调用Mat里submat方法

        Mat m = src.submat(new OpenCVForUnity.Rect(0, 0, 100, 100));

        Imgproc.resize(logo, logo, new Size(100, 100));


        logo.copyTo(m);

        Texture2D t = new Texture2D(src.width(), src.height(), TextureFormat.RGBA32, false);

        Imgproc.cvtColor(src, src, Imgproc.COLOR_BGR2RGB);

        Utils.matToTexture2D(src, t);

        this.GetComponentInChildren().texture = t;

        Utils.setDebugMode(false);

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • OpenCV 提到OpenCV,相信大多数人都听说过,应用领域非常广泛,使用C++开发,天生具有跨平台的优势.由英...
    Apple技术产品粉阅读 5,619评论 0 0
  • 抱歉, 上一版本出现点错误:忽略了模板图片的原来尺寸, 我的模板图片的尺寸是1170*2296, 忘记处理了, 导...
    浅宇落阅读 4,332评论 0 2
  • 之前,我对于莫奈的了解,甚至比梵高还少,只知道他同属“印象派”,不知道他的经历,不知道他的故事,而画作——更是知之...
    驿路奇奇阅读 3,047评论 18 7
  • 鹰是小型猛禽,与一般鸟不同,但不同在哪呢?跟我来看看吧! 鹰又叫鸢,雌性鹰的体型往往比雄性更大。老鹰性情凶猛,嘴呈...
    sky蓝焰少年阅读 11,960评论 2 7
  • 一【DOM树节点】 DOM节点分为三大类:元素节点、文本节点、属性节点 文本节点、属性节点,为元素节点的两个子节点...
    一只dororo阅读 4,685评论 0 1

友情链接更多精彩内容