march of Time
程序媛一枚
展开
-
task2:opencv的python接口图像储存、色彩空间、
task2:图像储存、色彩空间、图像的算数运算。笔记:使用managers.WindowManager抽象窗口和键盘:main.py:import cv2from manager import WindowManager, CaptureManagerclass Cameo(object): def init (self): self._windowManager = WindowManager('Cameo', self.onKeypress) self._ca原创 2021-02-07 12:44:47 · 326 阅读 · 0 评论 -
【笔记】opencv阈值处理 threshold函数 cv2.THRESH_BINARY ,cv2.THRESH_TRUNC) cv2.adaptiveThreshold()
像素是在模拟图像数字化时对连续空间进行离散化得到的。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。二值化阈值处理(cv2.THRESH_BINARY)二值化阈值处理会将原始图像处理为仅有两个值的二值图像,其针对像素点的处理方式为:在8位图像中,最大值是255。因此,在对8位灰度图像进行二值化时,如果将阈值设定为127,那么: ● 所有大于127的像素点会被处理为255。 ● 其余值会被处理为0。阈值设置为210:设置为240:反二值化阈值处理(cv2.THR原创 2021-02-27 18:07:41 · 23181 阅读 · 5 评论 -
【笔记】sobel算子 scharr算子 laplacian算子
sobel算子参数ksize:sobel核的大小,为-1时会使用scharr算子运算直接将参数ddepth的值设置为-1,在计算时得到的结果可能是错误的。 在实际操作中,计算梯度值可能会出现负数。如果处理的图像是8位图类型,则在ddepth的参数值为-1时,意味着指定运算结果也是8位图类型,那么所有负数会自动截断为0,发生信息丢失。为了避免信息丢失,在计算时要先使用更高的数据类型 cv2.CV_64F,再通过取绝对值将其映射为cv2.CV_8U(8位图)类型。所以,通常要将函数cv2.Sobel()内参原创 2021-02-28 02:58:33 · 3068 阅读 · 0 评论 -
【学习笔记】opencv的python接口 几何变换
先跑一下示例代码:平移:import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltimg = cv.imread('66.png')imgInfo = img.shapeheight = imgInfo[0]width = imgInfo[1]mode = imgInfo[2]dst = np.zeros(imgInfo, np.uint8)for i in range( height ):原创 2021-02-08 11:11:02 · 267 阅读 · 1 评论 -
【学习笔记】opencv的python接口 读取摄像头、图像和绘图
读取摄像头:import cv2 as cvif __name__ == '__main__': cap = cv.VideoCapture(0) #一般电脑内置摄像头为0,你可以通过设置成 1 或者其他的来选择别的摄像头 if not cap.isOpened(): print("Cannot open camera") exit() while True: # Capture frame-by-frame ret, frame = cap.read()原创 2021-02-08 11:59:15 · 921 阅读 · 2 评论 -
【学习笔记】opencv的python接口 形态学操作 腐蚀 膨胀 通用形态学函数
腐蚀img=np.zeros((5,5),np.uint8)img[1:4,1:4]=1kernel=np.ones((3,1),np.uint8)erosion=cv2.erode(img,kernel)print("img=\n",img)print("kernel=\n",kernel)print("erosion=\n",erosion)img=[[0 0 0 0 0][0 1 1 1 0][0 1 1 1 0][0 1 1 1 0][0 0 0 0 0]]kernel原创 2021-02-27 23:21:00 · 224 阅读 · 0 评论 -
【学习笔记】opencv的python接口 轮廓特征值 滚动条控制阈值参数
滚动条控制阈值和阈值的处理方式控制thres中的方式和阈值import cv2img = cv2.imread("p7.jpg")#img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)type = 0#阈值的处理方式value = 0#使用的阈值def ontype(a): type = cv2.getTrackbarPos("Type","j") value = cv2.getTrackbarPos("tValue","j")原创 2021-03-02 03:43:25 · 411 阅读 · 0 评论 -
【笔记】c++中opencv的使用
记录一下代码。标准霍夫变换 HoughLines() HoughLines(midImage, lines, 1, CV_PI/180, 150, 0, 0 );函数输入图像为8位单通道二进制经过调用HoughLines函数后储存了霍夫线变换检测到线条的输出矢量。每一条线由具有两个元素的矢量(ρ,θ)表示,其中,ρ是离坐标原点(0,0)(也就是图像的左上角)的距离,θ是弧度线条旋转角度(0度表示垂直线,π/2度表示水平线)。 第三个参数,double类型的rho,以像素为单位的距离精度。另一种表述方式原创 2021-05-01 08:17:08 · 3199 阅读 · 0 评论 -
robomaster视觉组代码中的一些函数
看的一些代码,看到不少陌生的函数。记录一点之前没怎么用过的c++的用法。explicit operator bool() const { return state; }int operator()(const cv::Mat &image);显式的类型转换运算符(explicit)为了防止四中的异常情况发生,C++11标准引入了显式的类型转换运算符explicit显示转换之后,不能直接使用隐式规则对类进行类型转换,需要使用static_cast显式的对类进行转换格式:通过explicit原创 2021-03-10 22:24:21 · 393 阅读 · 0 评论 -
【实例】python和opencv构建运动检测器
照着一个示例跑,目标本是捕获进入摄像头的第一帧然后会一直追踪这一个物体,如果出现的话会框出来,但是不知道什么原因,第一个框出来之后移动到别的地方还是会框别的东西,然后摄像头打开几秒就自动停止了还报错import pandasfirstframe = Nonestatus = [None,None]df = pandas.DataFrame(columns=["start","end"])cap = cv2.VideoCapture(1)while True: check,color原创 2021-03-01 03:53:02 · 520 阅读 · 6 评论 -
【笔记】opencv图像运算 图像加密
图像加权和可以用cv2.addWeighted()表示加权和一个注意点:cv2.addWeighted(a,0.5,b,0.5,0)中两个图像的尺寸和通道数要相同,不然会报错。示例:a = cv2.imread("p7.jpg")b = cv2.imread("me1.jpg")face1 = a[0:300,100:400]face2 = b[150:450,100:400]result= cv2.addWeighted(face1,0.5,face2,1,0)cv2.imshow("原创 2021-02-25 19:59:04 · 403 阅读 · 0 评论 -
【笔记】opencv图像轮廓 获得平均灰度值在原图上画轮廓 观察灰度图的分解
查了很多资料,记录一下。**获得平均灰度值的办法:**template = cv2.imread('pl2.jpg')#获得灰度图template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)h, w = template_gray.shape[:2] # template_gray 为灰度图m = np.reshape(template_gray, [1, w*h])mean = m.sum()/(w*h) # 图像平均灰度值发现原创 2021-02-25 14:22:02 · 5518 阅读 · 4 评论 -
【笔记】opencv的python实现·像素处理 像素访问 alpha通道
像素概念计算机在处理某个图像时,会首先将其划分为一个个小方块,每个小方块是一个独立的处理单位,成为像素点记录一些基础语法:,X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素彩色图像的读取RGB模式的彩色图像在读入OPENCV进行处理时会按照行方向依次读取该RGB图像的B通道 G通道 R通道的像素点,并将像素点以行为单位存储在ndarray的列中可以用image[0,0,0]访问图像image的B通道内第0行第0列上的像素点,第一个索引表示第0行,第二个索引原创 2021-02-25 00:26:51 · 982 阅读 · 0 评论 -
【笔记】opencv的python使用 腐蚀模糊背景分割等处理图像
1。处理图片效果:application_trace.cpp#include <iostream>#include <opencv2/core.hpp>#include <opencv2/imgproc.hpp>#include <opencv2/highgui.hpp>#include <opencv2/videoio.hpp>#include <opencv2/core/utils/trace.hpp>usin原创 2021-01-25 01:32:38 · 890 阅读 · 0 评论