Opencv图像核心基本操作(5为图像加个相框)

在图像周围加个边框,就像相框一样美美哒~

我们主要用到了这个函数

  1. cv2.copyMakeBorder()

这个函数的参数有这几个

  • src

src是输入的图像,我们可以直接用

  1. img1=cv2.imread(‘C:\Users\Administrator\Desktop\opencvimg\Logo.png’)

来定义好图像名称,后来的所有src都用img1来代替。

  • top,bottom,left,right对应边界的像素数目

我们用就用10个像素好啦~

  1. replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)

咦?啥玩应一大堆

 

这就是下一个参数啦,不要着急哦

  • borderType

我们用borderType来表示添加边界的类型,这个类型有这么几种

  • cv2.BORDER_CONSTANT    添加有颜色的常数值边界,颜色吗,所以还要涉及到另一个参数value,比如BLUE
  • cv2.BORDER_REFLECT    边界元素镜像
  • cv2.BORDER_REFLECT_101    和边界元素镜像差不多
  • cv2.BORDER_REPLICATE    重复最后一个元素
  • cv2.BORDER_WRAP     这是啥啊,

mdzz,你好像没有说一样,不要着急,我们看看图先~

上图!

啊!好丑的边框啊,不想相框,一点也不像!

我们来看下个个参数类型所对应的图像,有没有一种恍然大悟,无以名状的感觉!对,就是这种感觉,博主感到了语言方面深深的坑啊。What’s the fuck is it?

It’s what it is.Here’s the code!

 

# -*- coding:utf-8 -*-
"""
Created on Tue Jan 17 20:34:54 2017

@author: Y

"""

import cv2
import numpy as np
from matplotlib import pyplot as plt

Blue = [255,0,0]

img1=cv2.imread('C:\Users\Administrator\Desktop\opencvimg\Logo.png')

replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img1,10,10,10,10,cv2.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()

原图像忘了上,其实在opencv下的source文件下有一个samples,在samples下有一个data,里面有好多材料哦。

Logo

这几天我一直没有更新,原因很简单,我被前几天说的那个调用视频文件搞乱了,至今没有一个好的交代,博主也是一个有生活的人,所以可能没有太多的时间,我只是想尽力写好每一篇文章,让每一篇文章都有所启发,有所收获。一旦我弄清楚了如何调用视频文件,一定第一时间更新出来,请大家耐心等待。谢谢大家对我的支持,我是Y,欢迎来我的博客做客留言!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注