OpenCV 对图像的基本操作

人工智能等各类编程培训资料整理,所有资源无秘无压缩-购买会员

今天要用的照片。

nasa.png

代码

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

BLUE = [255,0,0]

img1 = cv.imread('nasa.png')

replicate = cv.copyMakeBorder(img1,10,10,10,10,cv.BORDER_REPLICATE)

reflect = cv.copyMakeBorder(img1,10,10,10,10,cv.BORDER_REFLECT)

reflect101 = cv.copyMakeBorder(img1,10,10,10,10,cv.BORDER_REFLECT_101)

wrap = cv.copyMakeBorder(img1,10,10,10,10,cv.BORDER_WRAP)

constant= cv.copyMakeBorder(img1,10,10,10,10,cv.BORDER_CONSTANT,value=BLUE)

plt.subplot(231),plt.imshow(img1,'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.copyMakeBorder() 函数在图像周围添加填充。

borz.jpg

结果。

不太明白为什么整个图像看起来都是蓝涩的。可以从尺寸上看出填充已成功添加。

发现问题在于 matplotlib 使用 RGB 格式,而 opencv 使用 BGR 格式。

img1 = cv.cvtColor(img1, cv.COLOR_BGR2RGB)

所以我们需要这一行来转换格式。

更好了!

现在让我们增加内边距的宽度,使其更加明显。

完美的!

免责声明: 1、本站信息来自网络,版权争议与本站无关 2、本站所有主题由该帖子作者发表,该帖子作者与本站享有帖子相关版权 3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和本站的同意 4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责 5、用户所发布的一切软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 6、您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 7、请支持正版软件、得到更好的正版服务。 8、如有侵权请立即告知本站,本站将及时予与删除 9、本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章和视频仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
600学习网 » OpenCV 对图像的基本操作