OpenCVForUnity掩码水印

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mseol/article/details/79278407

代码

public class roi : MonoBehaviour
{
    [SerializeField] private Image m_srcImage;
    Mat srcMat, logoMat;

    void Start()
    {
        srcMat = Imgcodecs.imread(Application.dataPath + "/Textures/lena.jpg", 1); //512,512
        Imgproc.cvtColor(srcMat, srcMat, Imgproc.COLOR_BGR2RGB);
        logoMat = Imgcodecs.imread(Application.dataPath + "/Textures/head.png", 1);
        Imgproc.cvtColor(logoMat, logoMat, Imgproc.COLOR_BGR2RGB);

        Mat ROI = srcMat.submat(new Rect(20, 20, logoMat.cols(), logoMat.rows()));
        logoMat.copyTo(ROI);//logo复制到ROI上面

        Texture2D t2d = new Texture2D(srcMat.width(), srcMat.height());
        Utils.matToTexture2D(srcMat, t2d);
        Sprite sp = Sprite.Create(t2d, new UnityEngine.Rect(0, 0, t2d.width, t2d.height), Vector2.zero);
        m_srcImage.sprite = sp;
        m_srcImage.preserveAspect = true;
        m_srcImage.rectTransform.offsetMin = new Vector2(0, 0);
        m_srcImage.rectTransform.offsetMax = new Vector2(t2d.width, t2d.height);
        m_srcImage.rectTransform.anchoredPosition = Vector2.zero;
    }
}

最终效果

掩码水印

猜你喜欢

转载自blog.csdn.net/mseol/article/details/79278407
今日推荐