我想在图像中裁剪圆形。 我有一个灰度输入图像。 在此图像中有一个圆形。我需要它。 如何在Android上使用Open CV进行操作?
输入图片:
Bitmap bmpProces = BitmapFactory.decodeFile(path+inpuImage);
Mat imageMat = new Mat ( bmpProces.getHeight(), bmpProces.getWidth(), CvType.CV_8U);
Bitmap myBitmap32 = bmpProces.copy(Bitmap.Config.ARGB_8888, true);
Utils.bitmapToMat(myBitmap32, imageMat);
答案 0 :(得分:0)
您必须创建一个蒙版,根据目标坐标填充一个圆圈,并使用CopyTo
提取蒙版中的目标圆形区域。然后您可以在蒙版中裁剪圆形的正常边界矩形。您可以可以查看示例代码和更多详细信息here。有一个代码片段可以将其转换为java并使用它:
// center and radius are the results of HoughCircle
// mask is a CV_8UC1 image with 0
cv::Mat mask = cv::Mat::zeros( img.rows, img.cols, CV_8UC1 );
circle( mask, center, radius, Scalar(255,255,255), -1, 8, 0 ); //-1 means filled
img.copyTo( dst, mask ); // copy values of img to dst if mask is > 0.