opencv
这个软件需要设计一下
这个作者很懒,什么都没留下…
展开
-
12.0-opencv基础-颜色空间转换
颜色空间转换RGBHSVL*a*b*灰度RGBRGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来原创 2021-03-04 09:42:00 · 117 阅读 · 1 评论 -
11.0-opencv基础-图像平滑
图像模糊/图像平滑Averaging平均Gaussian高斯模糊Median中值模糊Bilateral双边滤波from imutils import *image = imread('image.jpg')show(image)Averaging平均计算卷积框覆盖区域所有像素的平均值得到卷积的结果[[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]]kernelsizes = [(3,3),(9,9),(15,15)]p原创 2021-03-04 09:18:50 · 78 阅读 · 1 评论 -
10.0-opencv基础-形态学
形态学卷积的简单介绍Erosion腐蚀Dilation膨胀Opening开运算Closing闭运算先开运算再闭运算Gradient形态学梯度Top Hat顶帽/White Hat白帽Black Hat黑帽卷积的简单介绍Erosion腐蚀Erosion腐蚀其原理是在原图的小区域内取局部最小值,其函数是cv2.erode()。这个核也叫结构元素,因为形态学操作其实也是应用卷积来实现的,结构元素可以是矩形/椭圆/十字形,可以用cv2.getStructuringElement()来生成不同形状的结构元素原创 2021-03-04 08:23:05 · 88 阅读 · 1 评论 -
9.0-opencv基础-图像金字塔
图像金字塔高斯金字塔拉普拉斯金字塔图像金字塔一般情况下,我们要处理是一副具有固定分辨率的图像。但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理。比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸大小。这种情况下,我们需要创建创建一组图像,这些图像是具有不同分辨率的原始图像。我们把这组图像叫做图像金字塔(简单来说就是同一图像的不同分辨率的子图集合)。如果我们把最大的图像放在底部,最小的放在顶部,看起来像一座金字塔,故而得名图像金字塔。FAO高斯金字塔高斯金字塔的原创 2021-03-03 17:12:23 · 76 阅读 · 1 评论 -
8.0-opencv基础-切分合并通道
from imutils import *image = imread('test.jpg')image.shape(R, G, B) = cv2.split(image)print(R.shape)print(G.shape)print(B.shape)merged = cv2.merge([R,G,B])show(merged)cv2.imshow('R',R)cv2.imshow('G',G)cv2.imshow('B',B)cv2.waitKey(0)cv2.d原创 2021-03-03 16:56:10 · 79 阅读 · 1 评论 -
7.0-opencv基础-遮挡
from imutils import *image = imread('test.jpg')show(image)image.shape# 创建遮挡mask = np.zeros(image.shape,dtype='uint8')white = (255,255,255)cv2.rectangle(mask, (50,50), (250,350), white, -1)show(mask)# 对图像遮挡masked = cv2.bitwise_and(image, mask)原创 2021-03-03 16:49:30 · 434 阅读 · 1 评论 -
6.0-opencv基础-按位计算
bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=1,0|1=1,0|0=0bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,11=0,10=1,01=1原创 2021-03-03 16:42:19 · 80 阅读 · 1 评论 -
5.0-opencv基础-图像算术
from imutils import *image = imread('test.jpg')show(image)# 图像加法 最大是255print(cv2.add(np.uint8([200]),np.uint8([100]))) # 普通加法 最大是255的类型 255+1=0 ,剩下44print(np.uint8([200])+np.uint8([100]))# 图像减法print(cv2.subtract(np.uint8([50]),np.uint8([100])))原创 2021-03-03 16:08:43 · 321 阅读 · 1 评论 -
4.0-opencv基础-裁剪
from imutils import *image = imread('test.jpg')show(image)image = imread('test.jpg')image = image[0:200,50:200]show(image)image = imread('test.jpg')# -50就是从后面数50image = image[200:,50:-50]show(image)原创 2021-03-03 15:55:03 · 81 阅读 · 1 评论 -
3.0-opencv基础-翻转
imutils.pyimport cv2import matplotlib.pyplot as pltimport numpy as npdef show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image = cv2.imread(image) image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)原创 2021-03-03 15:38:26 · 50 阅读 · 1 评论 -
2.0-opencv基础-画图
画图画线画矩形画矩形填充画圆形画线import numpy as npimport cv2import matplotlib.pyplot as pltdef show(image): plt.imshow(image) plt.axis('off') plt.show()image = np.zeros((300,300,3),dtype='uint8')show(image)green = (0,255,0)cv2.line(image, (0,0),原创 2021-03-03 15:23:50 · 83 阅读 · 2 评论 -
1.0-opencv基础-环境安装及基础代码
opencv基础安装颜色组成安装pip install opencv-pythonpip install tensorflowpip install keras颜色组成import cv2import matplotlib.pyplot as plt# 读取image = cv2.imread('image.jpg')print("width: %d pixels" % (image.shape[1]))print("height: %d pixels" % (image.shape原创 2021-03-03 15:09:48 · 87 阅读 · 1 评论