OPENCV FOR PYTHON 学习笔记 - 图像创建边框及图像操作
import cv2 as cv import numpy as np from matplotlib import pyplot as plt img = cv.imread("new.jpg") cv.rectangle(img,(1820,1390),(1888,1504),(0,0,255),5) #从图片中获取的内容要横纵坐标转换一下,最终获取到区域像素范围。 juzi = img[1390:1504,1820:1888] #获取到这些内容了我们把它放到图片中的指定位置,注意,位置区域大小要和感兴趣的图片区域大小相同 img[1543:1657,1900:1968] = juzi cv.namedWindow('img',cv.WINDOW_NORMAL) cv.imshow('img',img) ''' cv2.copyMakeBorder()方法用于在像相框一样的图像周围创建边框。 参数: src:它是源图像。 top:它是顶部方向上的像素数的边框宽度。 bottom:它是底部方向上的像素数的边框宽度。 left:它是左侧像素的边界宽度。 right:它是沿正确方向的像素数的边框宽度。 borderType:它描述了要添加哪种边框。它由cv2.BORDER_CONSTANT,cv2.BORDER_REFLECT等标志定义 cv2.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数) cv2.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射,类似于gfedcb|abcdefgh|gfedcba cv2.BORDER_REFLECT_101 or cv2.BORDER_DEFAULT:和上面类似,但是有一些细微的不同,类似于gfedcb|abcdefgh|gfedcba cv2.BORDER_REPLICATE:使用最边界的像素值代替,类似于aaaaaa|abcdefgh|hhhhhhh cv2.BORDER_WRAP:不知道怎么解释,直接看吧,cdefgh|abcdefgh|abcdefg value:这是一个可选参数,如果border type为,则描述边框的颜色cv2.BORDER_CONSTANT。 返回值:它返回一个图像。 ''' replicate = cv.copyMakeBorder(img,10,10,10,10,cv.BORDER_REPLICATE) reflect = cv.copyMakeBorder(img,10,10,10,10,cv.BORDER_REFLECT) reflect101 = cv.copyMakeBorder(img,10,10,10,10,cv.BORDER_REFLECT_101) wrap = cv.copyMakeBorder(img,10,10,10,10,cv.BORDER_WRAP) constant = cv.copyMakeBorder(img,10,10,10,10,cv.BORDER_CONSTANT) plt.subplot(231),plt.imshow(img,'gray'),plt.title('ORIGINAL') plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE') plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT') plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101') plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP') plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT') plt.show() cv.waitKey(0) cv.destroyAllWindows()
本文来自博客园,作者:HappyChen2016,转载请注明原文链接:https://www.cnblogs.com/happychen2016/p/15157240.html