Desktop : OpenCV Seamless Clone

<h5>Goal</h5>
Test opencv seamless clone.

```OpenCV_SeamlessClone.java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.photo.Photo;

public class OpenCV_SeamlessClone {
    public static void main(String[] args) {
        System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
        Mat src1 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\monster.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);
        Mat dst1 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\DSCN3629s.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);

        Mat src2 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\monster-bg-less.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);

        Mat src3 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\IloveOpencv-s.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);
        Mat dst3 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\wood2.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);

        Mat src4 = Imgcodecs.imread("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\IloveOpencv-gbg.jpg",Imgcodecs.CV_LOAD_IMAGE_COLOR);

        // Create an all white mask
        Mat src_mask = new Mat(src1.size(), src1.depth(),new Scalar(255));

//	    for (int i=0;i<src_mask.rows();i++){
//      	  for (int j=0;j<src_mask.cols();j++){
//      		  double[] data=new double[3];
//      		  data=src_mask.get(i, j);
//      		  data[0]= 255;
//
//      		src_mask.put(i, j, data);
//      	  }
//
//        }

        Mat src_mask3 = new Mat(src3.size(), src3.depth(),new Scalar(255));
//	    for (int i=0;i<src_mask3.rows();i++){
//	      	  for (int j=0;j<src_mask3.cols();j++){
//	      		  double[] data=new double[3];
//	      		  data=src_mask3.get(i, j);
//	      		  data[0]= 255;
//
//	      		src_mask3.put(i, j, data);
//	      	  }
//
//	        }





        // The location of the center of the src in the dst
        Point center=new Point(dst1.cols()/2,dst1.rows()/2);
        Point center3=new Point(dst3.cols()/2,dst3.rows()/2);

        // Seamlessly clone src into dst and put the results in output
        Mat normal_clone1=new Mat();
        Mat mixed_clone1=new Mat();

        Mat normal_clone2=new Mat();
        Mat mixed_clone2=new Mat();

        Mat normal_clone3=new Mat();
        Mat mixed_clone3=new Mat();


        Mat normal_clone4=new Mat();
        Mat mixed_clone4=new Mat();

        Photo.seamlessClone(src1, dst1, src_mask, center, normal_clone1, Photo.NORMAL_CLONE);
        Photo.seamlessClone(src1, dst1, src_mask, center, mixed_clone1,  Photo.MIXED_CLONE);

        Photo.seamlessClone(src2, dst1, src_mask, center, normal_clone2, Photo.NORMAL_CLONE);
        Photo.seamlessClone(src2, dst1, src_mask, center, mixed_clone2,  Photo.MIXED_CLONE);

        Photo.seamlessClone(src3, dst3, src_mask3, center3, normal_clone3, Photo.NORMAL_CLONE);
        Photo.seamlessClone(src3, dst3, src_mask3, center3, mixed_clone3,  Photo.MIXED_CLONE);

        Photo.seamlessClone(src4, dst3, src_mask3, center3, normal_clone4, Photo.NORMAL_CLONE);
        Photo.seamlessClone(src4, dst3, src_mask3, center3, mixed_clone4,  Photo.MIXED_CLONE);

        System.out.println("Photo.NORMAL_CLONE="+Photo.NORMAL_CLONE);
        System.out.println("Photo.MIXED_CLONE="+ Photo.MIXED_CLONE);

        // Save results
        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-normalClone-LakeMonster.jpg", normal_clone1);
        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-MixedClone-LakeMonster.jpg", mixed_clone1);

        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-normalClone-LakeMonster-bgLess.jpg", normal_clone2);
        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-MixedClone-LakeMonster-bgLess.jpg", mixed_clone2);

        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-normalClone-iloveCv.jpg", normal_clone3);
        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-MixedClone-iloveCv.jpg", mixed_clone3);

        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-normalClone-iloveCv2.jpg", normal_clone4);
        Imgcodecs.imwrite("D:\\projects\\Java\\OpenCV_Samples\\resource\\imgs\\SeamlessClone-MixedClone-iloveCv2.jpg", mixed_clone4);
    }
}
```
<h5>Result</h5>
![SeamlessClone-MixedClone-LakeMonster-bgLess.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276243/3cc1f06c-40af-1654-7707-f7e7d7392696.jpeg)

![SeamlessClone-MixedClone-LakeMonster.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276243/d424e244-49a9-db5b-fb15-3a5ef5a7a90b.jpeg)

![SeamlessClone-normalClone-LakeMonster-bgLess.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276243/7eab6f8d-5ac6-1ce1-9aba-d92cfcb1cd74.jpeg)

![SeamlessClone-normalClone-LakeMonster.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276243/0d9c6c9a-558a-16ab-501d-8815df811005.jpeg)