ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCV 计算机视觉之图像基本操作

2021-04-18 11:35:59  阅读:184  来源: 互联网

标签:填充 img 图像 37 OpenCV 视觉 基本操作 BORDER original


边界填充

涉及到的函数:
copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)

其中,填充类型borderType主要的有一下四种类型:

BORDER_CONSTANT :可以用指定的像素去填充图像边界,value可以是一个值,也可以是表示RGB的一个元组(value = (0,255,255))

具体填充方式如下:
image

BORDER_REPLICATE :就是用图像最边缘的像素进行填充
效果如下:image
具体填充方式如下:
image

BORDER_WRAP:比如最下面的边界要用图像最上面的像素去填充,最左边的边界要用图像最右边的像素进行填充,同理,其他边界一样,比如下方这个图,仔细观察就可以明白这种填充方式。

具体填充方式:
image

BORDER_REFLECT:就是以图像边界为轴以镜像的方式(图像的边界像素也会被用来填充)将像素填充到需要填充的范围内。如下图所示:

具体方式如下图实验:
代码:

img_original = np.array([[0,0 ,0 ,0 ,0 ,0],
			 [1,69 ,52 , 32 ,44 ,3],
			 [1,63 ,83 , 38 ,63 ,3],
			 [1 ,36 ,37 , 36 ,37, 3],
			 [1,37 ,37 , 41 ,45 ,3],
			 [1,37 ,38 , 38 ,44 ,3],
			 [1, 42, 42, 36, 40, 3],
			 [1, 69, 52, 32, 44, 3],
			 [1, 63, 83, 38, 63, 3],
			 [1, 36, 37, 36, 37, 3],
			 [1, 37, 37, 41, 45, 3],
			 [2, 2, 2, 2, 2, 2]],dtype=np.uint8)
print("原来的图像img_original:",img_original)
#cv2.imshow("原来的图像img_original:",img_original)
#cv2.waitKey(0)
top,bottom,left,right = (3,3,3,3)
reflect = cv2.copyMakeBorder(img_original,top,bottom,left,right,borderType=cv2.BORDER_REFLECT)
img_reflect = np.asarray(reflect)
print("用reflect填充后的图像:",img_reflect)

实验结果:
原来的图像img_original:
image
用reflect填充后的图像:
image

BORDER_REFLECT_101:和BORDER_REFLECT其实是一样的,只不过是在填充的时候,不用图像的边界像素去镜像填充。具体填充方式如下图所示:
image

标签:填充,img,图像,37,OpenCV,视觉,基本操作,BORDER,original
来源: https://www.cnblogs.com/yolo-m/p/14672472.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有