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)
所以我们需要这一行来转换格式。
更好了!
现在让我们增加内边距的宽度,使其更加明显。
完美的!
相关阅读
-
OpenCV 对图像的基本操作:今日播报
今天要用的照片。nasa.png代码importcv2ascvimportnumpyasnpfromma... -
环球微动态丨高速光耦的工作原理以及应用
高速光耦简称光耦。光耦以光为媒介传输电信号。它对输入、输出电信... -
天天百事通!港湾周评|风雨飘摇中的国美...
《港湾商业观察》李镭黄光裕的国美陨落的速度比想象中要快。即将到... -
双12一降价,iPhone 14又卖光了!
按理来说,每年双11都是大家集中购物的时机,可今年确实有点不一样... -
岁末大胆展望一波,2023年的汽车市场会...
2022年马上就要结束,对于中国汽车市场而言是魔幻的一年,老牌合资... -
元宇宙不就是QQ秀的轮回吗
“我们是元宇宙的领路人”,这是Roblox给自己的定位。这句话让我的...