ios - 使用 OpenCv 在 IOS 中裁剪圆形图像

标签 ios image opencv image-processing

我正在我的项目中开发人脸特征检测。

到目前为止,我开发了检测面部,然后在面部内找到眼睛。 我想裁剪圆形的眼睛。

   circle( mask, center, radius, cv::Scalar(255,255,255), -1, 8, 0 ); 
                  image.copyTo( dst, mask ); 

在上面的代码中,我可以用黑色遮住眼睛区域的图像。现在我只想裁剪眼睛区域。

谁能帮我解决这个问题。请检查下图

enter image description here

最佳答案

裁剪,顾名思义,是指从较大的图像中剪切出一个轴对齐的矩形,留下较小的图像。

如果您想“裁剪”一个非轴对齐的矩形,您将不得不使用 mask 。 mask 可以是完整图像的大小(这有时很方便),也可以是包含您想要保持可见的所有像素的最小边界(轴对齐)矩形。

这个掩码可以是二进制,表示它表示一个像素是否可见,也可以是一个alpha-mask,表示透明度其中的任何像素,0 表示不可见像素,(对于 8 位蒙版图像)255 表示完全不透明。

在您上面的示例中,您可以获得这样的子图像 ROI(感兴趣区域):

cv::Mat eyeImg = image(cv::Rect(center.x - radius, // ROI x-offset, left coordinate
                                center.y - radius, // ROI y-offset, top coordinate 
                                2*radius,          // ROI width
                                2*radius));        // ROI height

请注意,eyeImg 不是副本,而是指 image 中的相同像素。如果你想要一个副本,在末尾添加一个 .clone()

关于ios - 使用 OpenCv 在 IOS 中裁剪圆形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23504606/

相关文章:

c# - 在C#中,可能是Image.SaveAdd的一个bug,谁能帮我解决一下?

python - 在图像上滑动窗口 OpenCV

c++ - OpenCV 均值函数因从 OpenCV 阈值函数创建的掩码而崩溃?

objective-c - NSUserDefaults 总是返回 1 而不是正确的整数

iOS 模拟器 GL_OES_standard_derivatives

html - 需要截断img左右

html - css 中的图像 map 标题?

ios - 需要有关 UILocalNotification 权限的帮助

ios - 当工作区中有多个 xcode 项目时,如何将 cocoapods cordova 插件 src 链接到 .framework 头文件?

python - 如何在 OpenCV 或 numpy 中找到图像的 glcm?