如何裁剪圆形图像opencv android

时间:2014-11-08 09:15:05

标签: android image opencv

我想在图像中裁剪圆形。 我有一个灰度输入图像。 在此图像中有一个圆形。我需要它。  如何在Android上使用Open CV进行操作?

输入图片:

enter link description here http://www.photo-dictionary.com/photofiles/list/2264/2960temperature_gauge.jpg

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);

1 个答案:

答案 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.