自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 一、Socket相关知识

Socket通信的基础知识

2023-01-22 11:41:27 795

原创 Opencv3学习笔记(C++&Python双语)---图像梯度

原理参照教程《学习Opencv3》第十章卷积与滤波梯度本质就是求导数,Opencv中都是近似求导数,至于算子模板为什么要设置特定的矩阵,参考以下两篇文章https://www.zhihu.com/question/26822364/answer/1168914135https://blog.csdn.net/yanghan742915081/article/details/846796291.Sobel算子与Scharr算子Sobel算子是高斯平滑与微分操作的结合体,它的抗噪音能..

2020-06-27 17:52:32 436

原创 Opencv3学习笔记(C++&Python双语)---图像形态学

原理详细原理描述参考《学习opencv3》第10章 卷积与滤波形态学操作是根据图像形状进行的的简单操作。一般情况下对二值化图像的操作。需要输入两个参数,一个是原始图像,第二个称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。腐蚀腐蚀是一种卷积操作(基本上所有的图像处理都是用卷积实现),它将目标像素替换为卷积核覆盖区域的局部最小值。这个操作会把前景物体的边界腐蚀掉,使前景变小。这对于去除噪声很有用,也可以用来断开两个连在一起

2020-06-27 17:06:03 206

原创 Opencv3学习笔记(C++&Python双语)---图像平滑

理论参考《学习opencv3》第10章滤波与卷积平滑也称为“模糊”,平滑图像的目的有很多,但通常都是为了减少噪声和伪影,在降低图像分辨率的时候,平滑也是十分重要。Opencv中总共有四种图像模糊技术一 均匀涉及函数 cv.blur() cv.boxFilter()由一个归一化卷积框完成的。他只是用卷积框覆盖区域所有像素的平均值来代替中心元素。均匀滤波对噪声敏感。如果你想使用归一化卷积框可以使用cv2.boxFilter()时加入参数normalize=False。...

2020-06-27 10:09:50 234

原创 Opencv3学习笔记(C++&Python双语)---几何变换

图像的几何变换有两种,仿射变换与透视变换。两者的区别参照教程《学习Opencv3》第11章常见的图像变换。此外推荐一篇文章https://www.cnblogs.com/shine-lee/p/10950963.html 仿射变换及其变换矩阵的理解 ,下面的图片均转载于此博客。仿射变换使用2*3矩阵,透视变换采用3*3矩阵。仿射变换:平移、旋转、放缩、剪切、反射,仿射变换的特点是变换前的两条平行线变换后仍然平行。透视变换用于计算一个特定观察者感觉三维平面的方法,简单讲就是同一个物体,观察...

2020-06-25 13:47:38 248

原创 Opencv3学习笔记(C++&Python双语)---阈值化操作

理论描述参考教程《学习opencv3》图像处理过程中经常会遇见这种情况:我们已经完成了多层处理步骤并需要做出一个最终决定,或者将高于或低于某一值的像素置零同时其他的像素保持不变。OpenCV 中的函数cv: :threshold() 实现了这些功能,其原理是对于数组中每个值,根据其高于或低于这个阙值做出相应的处理,给定一个数组和阙值。根据个人喜好,也可以把阀值化操作理解成一个用1 x 1 的核进行卷积,对每个像素进行一次非线性操作。随着我们继续学习本章,在接触了其他史复杂的卷积操作之后,这个观点的效果.

2020-06-24 16:06:21 260

原创 Opencv3学习笔记(C++&Python双语)---颜色空间转换

1.转换颜色空间在 OpenCV 中有 超过150 种进行颜色空间转换的方法。经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。用到的函数是cv2.cvtColor(input_imageflag),其中flag就是转换类型。对于BGR↔Gray的转换,使用的flag就是cv2.COLOR_BGR2GRAY。同样对于BGR↔HSV的转换用的flag就是cv2.COLOR_BGR2HSV。你可以下的命令得到所有可用的 flag。在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是

2020-06-21 19:11:52 213

原创 Opencv3学习笔记(C++&Python双语)---图像上的算术运算

涉及函数cv2.add() ,cv2.addWeighted()1.图像加法使用cv2.add()将两幅图像进行加法运算,也可以直接使用numpy,res=img1+img2.两幅图像的大小,类型必须一致,或者第二个图像可以是一个简单的标量值。2.图像混合这也是加法,不同的是两幅图像的权重不同,这会给人一种混合或者透明的感觉。图像混合的计算公式如下:g(x) = (1−α)f0 (x)+αf1 (x)种饱和操作,而numpy的加法是一种模操作。3.按位运算这里包括按位操作有:A...

2020-06-21 18:18:28 307

原创 Opencv3学习笔记(C++&Python双语)---鼠标事件

python代码简单的示例def draw_cicle(event,x,y,flags,params): if event==cv.EVENT_LBUTTONDBLCLK: cv.circle(img,(x,y),100,(255,0,0),-1) img = np.zeros((500,500,3),np.uint8)cv.namedWindow("image")cv.setMouseCallback("image",draw_cicle)whi

2020-06-16 07:11:27 191

原创 Opencv3学习笔记(C++&Python双语)---绘图函数

涉及的函数:cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等需要设置的参数:img 你想要绘制的图形的那副图像color 形状的颜色,以RGB为例,需要传入的元组,例(255,0,0)代表蓝色,对于灰度图只需传入灰度值thickness 线条的粗细,如果给一个闭合图形设置为-1,那么这个图形就会被填充,默认值为1linetype 线条的类型,8连接,4锯齿等。默认是8连接。cv2.LINE_AA为

2020-06-14 22:37:04 222

原创 Opencv3学习笔记(C++&Python双语)---视屏读取与保存

要捕获视频,需要创建一个VideoCapture对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接(默认为0)。可以通过传递1来选择第二个相机,以此类推。在此之后,可以逐帧捕获。但是在最后,不要忘记释放捕获。重要函数:cv.VideoCapture() 相机默认参数为0,如果从视屏中播放文件,参数为视屏地址。cap.read() 返回布尔值,如果真确读取,返回ture。可以通过检查返回值来检查视屏结尾。注:此函数在C++中运行报错...

2020-06-13 15:35:40 395

原创 Opencv3学习笔记(C++&Python双语)---图像显示与保存

重要函数python版本:cv2.imread() 读取图像cv2.imshow() 显示图像cv2.waitKey() 窗口等待cv2.namedWindow() 创建窗口cv2.destroyAllWindows() 销毁窗口C++ 版本将cv.改为cv::即可import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("F:\\L-opencv3\\pictu...

2020-06-13 13:20:33 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除