2013-01-11 54 views
3

我一直在嘗試在cvMat頂部應用橢圓蒙板。在C++中,代碼如下所示:CvMat setTo在javaCV中的等效

Mat mask = Mat(warped.size(), CV_8UC1, Scalar(255)); 
double dw = DESIRED_FACE_WIDTH; 
double dh = DESIRED_FACE_HEIGHT; 
Point faceCenter = Point(cvRound(dw * 0.5), 
cvRound(dh * 0.4)); 
Size size = Size(cvRound(dw * 0.5), cvRound(dh * 0.8)); 
ellipse(mask, faceCenter, size, 0, 0, 360, Scalar(0),CV_FILLED); 
filtered.setTo(Scalar(128), mask); 

我無法在javaCV中找到等同於setTo的任何方法。 任何人都可以幫忙解決這個問題。

回答

0

您可以設置cvCopy(CvArr src, CvArr dst, CvArr mask)

watermarking example可選的面具展示了一些用法,不太一樣的你在做什麼,但可能會有所幫助。

1

您需要創建從標一個1x1矩陣,並使用替代 類似:

filtered.setTo(Mat(1,1,CV_16S1C1, 128), mask); 

定義的方法:

@ByRef 
     public native opencv_core.Mat setTo(@ByVal opencv_core.Mat var1, @ByVal(
    nullValue = "cv::noArray()" 
) opencv_core.Mat var2);