使用OpenCv在IOS中裁剪圆形图像
我正在我的项目中开发人脸特征检测 到目前为止,我已经开发出检测面部,然后在面部找到眼睛的方法。 我想修剪成圆形的眼睛使用OpenCv在IOS中裁剪圆形图像,ios,image,opencv,image-processing,Ios,Image,Opencv,Image Processing,我正在我的项目中开发人脸特征检测 到目前为止,我已经开发出检测面部,然后在面部找到眼睛的方法。 我想修剪成圆形的眼睛 circle( mask, center, radius, cv::Scalar(255,255,255), -1, 8, 0 ); image.copyTo( dst, mask ); 在上面的代码中,我能够用黑色遮罩图像离开眼睛区域。现在我只想裁剪眼睛区域 有人能帮我解决这个问题吗?请查看下图 裁剪,顾名思义,是指从较大的图像中
circle( mask, center, radius, cv::Scalar(255,255,255), -1, 8, 0 );
image.copyTo( dst, 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不是副本,而是指图像中的相同像素。如果要复制,请在末尾添加一个.clone。好的,您能告诉我如何仅裁剪上图中的眼睛区域吗?您想做什么?创建一个新的包含圆圈的较小图像或创建一个图像大小的遮罩?我想创建一个新图像,这个图像应该只是眼睛图像。如何修剪它。我希望你得到了什么?我有一个长方形的眼睛,从中我得到了圆心和半径,然后画了一个圆,接下来我只需要眼睛区域作为图像。你想要一个圆形图像吗?像openCV中的标准计算机图像总是矩形大小的宽度*高度。