Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OpenCv在IOS中裁剪圆形图像_Ios_Image_Opencv_Image Processing - Fatal编程技术网

使用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中的标准计算机图像总是矩形大小的宽度*高度。