人脸检测 |
您所在的位置:网站首页 › 人脸拼接软件是什么 › 人脸检测 |
ROI(region of interest)感兴趣区域:
图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。 ROI的获取: src = cv.imread("E:/picture/demo.jpg", 1); cv.namedWindow("input image", src); face = src[50:250, 100:300]; gray = cv.CvtColor(face, COLOR_BGR2GRAY); src[50:250, 100:300] = gray; imshow("changed image", src); 泛洪填充洪泛算法的讲解:https://blog.csdn.net/mao0514/article/details/47041409 我们无需关注其具体算法实现,知道怎么使用就足够了。 使用floodFill填充彩色图像: def fill_color_demo(image): copyImg = image.copy(); h, w = image.shape[:2]; mask = np.zeros([h+2, w+2],np.uint8); cv.floodFill(copyImg, mask, (30, 30), (0, 255, 255), (100, 100, 100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE); #填充过程:从(30,30)开始取这个像素点;颜色填充设置为(0,255, 255); #S(100,100,100),表示当前观察像素值与其部件邻域像素值或者待加入该部件的种子像素之间的亮度或颜色之负差的最大值。 #(50,50,50)表示当前观察像素值与其部件邻域像素值或者待加入该部件的种子像素之间的亮度或颜色之正差的最大值。 cv.imshow("fill_color_demo", copyImg); 使用floodlFill()填充灰度图像: def fill_binary(): image = np.zeros([400, 400, 3], np.uint8); image[100:300, 100:300, :] = 255; cv.imshow("fill_binary_demo", image); mask = np.ones([402, 402, 1], np.uint8); mask[101:301, 101:301] = 0; cv.floodFill(image, mask, (200,202), (0, 0 ,140), cv.FLOODFILL_MASK_ONLY); cv.imshow("fill_binary", image); floodFill()函数:floodFill函数详解 [openv.org的解释](https://docs.opencv.org/4.1.0/d7/d1b/group__imgproc__misc.html#ga366aae45a6c1289b341d140839f18717)这个函数有2个版本,我们关注有掩膜的那个版本。 我们重点强调一下,mask的大小要设置为(height+1, width+1);且Since the mask is larger than the filled image, a pixel (x,y) in image corresponds to the pixel (x+1,y+1) in the mask. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |