![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenCV
文章平均质量分 82
前期C++、后期python,项目python。有写的不当的地方还请斧正,Thanks♪(・ω・)ノ
_(*^▽^*)_
个人水平有限,如果有写错的地方,或者可以改进的地方,希望网友能够批评指正!
展开
-
奇葩错误 -- 轮廓检测检测到边框、膨胀腐蚀开闭运算效果颠倒
图像处理出错,轮廓检测检测到边框、膨胀腐蚀开闭运算效果颠倒原创 2022-06-09 21:29:23 · 269 阅读 · 0 评论 -
python -- plt图表
目录一、读取图像二、BGR转RGB三、plt画板显示图像总代码一、读取图像import cv2# 读取图像img1 = cv2.imread("Resource/test11.jpg")img2 = cv2.imread("Resource/test11.jpg", 0)二、BGR转RGB# BGR转RGB(opencv的色彩空间是BGR,plt色彩空间是RGB)b, g, r = cv2.split(img1)img1 = cv2.merge([r.原创 2021-10-06 11:15:22 · 1186 阅读 · 0 评论 -
树莓派视觉小车 -- 小球追踪(颜色追踪)(OpenCV色彩空间HSV)
目录基础理论(HSV)为什么用HSV空间而不是RGB空间?HSV1、Hue(色相)2、Value(明度)3、Saturation(饱和度)效果展示一、初始化滑动条初始化1、创建回调函数2、窗口设置(名称)3、滑动条设置代码二、运动函数三、舵机控制四、在HSV空间下获取二值图1、获取滑动条的值2、转HSV(三通道:H、S、V)3、转二值图(单通道阈值处理)4、结合HSV三个通道,得到最终二值图代码五、图像处理(总)..原创 2021-09-21 00:06:18 · 25249 阅读 · 22 评论 -
OpenCV(基础补充)颜色空间HSV && *args与**args(滑动条传参问题)
目录一、基础理论1、Hue(色相)2、Value(明度)3、Saturation(饱和度)二、hsv三通道及单通道效果三、*args && **args*args:**args:四、滚动条控制h、s、v(min && max)1、创建滚动条API2、回调函数 -- 阈值设置APIinRange()3、回调函数 -- 感兴趣值APIbitwise_and()总代码参考资料一、基础理论HSV...原创 2021-09-19 17:44:48 · 1674 阅读 · 0 评论 -
树莓派视觉小车 -- 物体跟踪(OpenCV)
一、物体跟踪效果展示原创 2021-09-16 22:54:01 · 16496 阅读 · 13 评论 -
OpenCV(项目)车牌识别4 -- 总结篇
目录一、效果1、成功案例2、经典失败案例(单字符识别成类似字符)3、其他失败案例二、总结三、车牌识别总代码一、效果1、成功案例2、经典失败案例(单字符识别成类似字符)3、其他失败案例二、总结前面字符提取比较成功的,大多数的识别都没太大问题,但是字符提取不到位,后面的识别工作自然也很难进行。这次的测试失败有很多都是前面的工作没有做好,尤其是第一步的车牌提取,个人感觉车牌提取是本次项目最困难的...原创 2021-09-06 11:25:12 · 5452 阅读 · 4 评论 -
OpenCV(项目)车牌识别3 -- 模板匹配
目录一、基础理论1、思想2、大致过程二、详细过程1、首先需要模板库2、得到模板3、原图限定大小4、模板匹配5、匹配所有子文件夹,保存最佳得分(最匹配项)三、大致过程(细分类,节省时间)1、汉字匹配2、英文字符匹配3、数字/英文匹配4、显示模板匹配总代码车牌识别总代码及效果成功案例经典失败案例(单字符识别成类似字符)其他失败案例参考资料一、基础理论1、思想把提取到的每一张字符,和模板库中的所有字符进行对比。..原创 2021-09-06 11:19:32 · 9098 阅读 · 4 评论 -
OpenCV(项目)车牌识别2 -- 车牌字符分割(直方图)
一、车牌字符提取需要把字符揉成一团,这样才能提取轮廓。0、试错一开始采取的是膨胀提取车牌字符,发现很多情况无法兼顾。0-1、没有膨胀/膨胀过小:无法连接上单个字符。可以看到,一些没有连接上的汉字,轮廓提取就把它们当成了多个字符。0-2、膨胀过大:错误连接相邻字符。给予膨胀之后,膨胀又太大了,虽然同一个字符的不同笔画连接成功,但是又错误地把两个字符连接在了一起。上面的算法感觉很难行得通了,除非借助其他分割算法。下面是优化...原创 2021-09-03 17:29:11 · 10301 阅读 · 0 评论 -
OpenCV(项目)车牌识别1 -- 车牌提取(形态学)
一、车牌提取1、读取图片,转灰度图# 1、读取图片,转灰度图 img = cv.imread('Resource/car.jpg') gray = cv.cvtColor(img, cv.COLOR_RGB2GRAY) cv.imshow('gray', gray)2、提取轮廓(Sobel算子提取y方向边缘)为什么对Y方向取边缘:让图像变“瘦”,便于把车牌揉成一团。# 2、提取轮廓(Sobel算子提取y方向) y = cv.Sob...原创 2021-09-02 21:10:43 · 17071 阅读 · 6 评论 -
OpenCV(实战)二值图颜色填充(彩色图形、硬币)
1、初始效果展示# 转二值图def ToBinary(): global gray, binary # 1、灰度图 gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow('imgray', gray) # 2、二进制图像 ret, binary = cv.threshold(gray, 127, 255, 0) cv.imshow('binary', binary)可以发现有...原创 2021-08-25 18:40:55 · 3924 阅读 · 3 评论 -
OpenCV(实战)全景拼接
目录过程1、导入主文件夹、子文件夹2、获取子文件(图片)总代码及效果过程概述:采用的多文件夹,子文件夹里面放的才是图片。主文件夹:子文件夹1、2:1号文件夹:2号文件夹:1、导入主文件夹、子文件夹 # 主文件夹 mainFolder = 'Scenes' # 子文件夹 folders = os.listdir(mainFolder) print(folders)2、获取子文...原创 2021-08-23 23:00:26 · 827 阅读 · 0 评论 -
OpenCV(项目)二维码识别(二维码、条形码)
一、检测图片中的二维码/条形码# 检测图像中的码(解码)def Read_Decode_Pic(): img = cv2.imread('Resource/qrcode.jpg') # 遍历解码 for code in decode(img): print("条形码/二维码:", code) print("条形码/二维码数据:", code.data.decode('utf-8')) #解码数据注:要解码数据的话,必须在for循环..原创 2021-08-23 17:00:47 · 14142 阅读 · 0 评论 -
OpenCV(项目)人脸检测(图片、摄像头)
一、基础理论我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像〈不含面部的图像)来训练分类器。我们需要从其中提取特征。下图中的 Haar特征会被使用,就像我们的卷积核,每一个特征是一个值,这个值等于黑色矩形中的像素值之和减去白色矩形中的像素值之和。1、Haar分类算法Haar特征:(核)(切片)Haar特征值反映了图像的灰度变化情况。例如︰脸部的一些特征能由矩形特征简单的描述,眼睛要比脸颊颜色要深,鼻...原创 2021-08-22 18:41:17 · 58117 阅读 · 5 评论 -
OpenCV(26)图像分割 -- 距离变换与分水岭算法(硬币检测、扑克牌检测、车道检测)
一、基础理论1、思想防止同化。任何灰度图像都可以看作是一个地形表面,其中高强度表示山峰,低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位的上升,根据附近的山峰(坡度),来自不同山谷的水明显会开始合并,颜色也不同。为了避免这种情况,你要在水融合的地方建造屏障。你继续填满水,建造障碍,直到所有的山峰都在水下。然后你创建的屏障将返回你的分割结果。这就是Watershed背后的“思想”。你可以访问Watershed的CMM网页...原创 2021-08-21 14:27:23 · 8604 阅读 · 0 评论 -
OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)
目录一、基础理论1、轮廓概述2、cv.findContours函数(查找轮廓)3、cv.drawContours函数(画出轮廓)二、代码三、效果参考资料一、基础理论1、轮廓概述边缘和轮廓区别:边缘是零散的点,轮廓是整体。2、cv.findContours函数(查找轮廓)contours, hierarchy = cv2.findContours(img,mode,method)参数:返回:contours:轮廓hiera..原创 2021-08-19 20:44:28 · 43630 阅读 · 6 评论 -
OpenCV(24)角点检测3 -- ORB
一、基础理论1、原理ORB算法结合了Fast和Brief算法,提出了构造金字塔,为Fast特征点添加了方向,从而使得关键点具有了尺度不变性和旋转不变性。具体流程描述如下:构造尺度金字塔,金字塔共有n层,与SIFT不同的是,每一层仅有一幅图像。第s层的尺度为:(每层图像大小和尺度有关)1、在不同的尺度上利用Fast算法检测特征点,采用Harris角点响应函数,根据角点的响应值排序,选取前N个特征点,作为本尺度的特征点。2、计算特征点的主方向,计算以特征...原创 2021-08-19 19:26:39 · 2547 阅读 · 0 评论 -
OpenCV(23)角点检测2 -- fast算法(实时)(佳)
目录一、基础理论1、前言2、原理3、过程4、让机器学习一个角检测器5、非极大值抑制二、API1、实例化fast(FastFeatureDetector_create函数)2、利用fast.detect检测关键点(fast.detect函数)3、在图像上描绘关键点三、代码1、fast模块代码2、总代码四、效果1、关闭非极大值抑制2、开启非极大值抑制参考资料一、基础理论1、前言我们看到了几个特征检测器...原创 2021-08-19 15:48:26 · 3309 阅读 · 0 评论 -
OpenCV(22)SIFT尺度不变特征变换(纯理论)
一、基础理论1、引言前面介绍了Harris和Shi-Tomasi角点检测算法,这两种算法具有旋转不变性,但不具有尺度不变性。以下图为例,在左侧小图中可以检测到角点,但是图像被放大后,在使用同样的窗口,就检测不到角点了。所以,下面我们来介绍一种计算机视觉的算法,尺度不变特征转换即SIFT(Scale-invariant featuretransform)。它用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法...原创 2021-08-19 11:55:10 · 676 阅读 · 0 评论 -
OpenCV(21)角点检测1 -- Harris(基础)和Shi-Tomas(优化,佳)
一、基础理论在拼图时,我们要寻找一些唯一的特征,这些特征要适于被跟踪,容易被比较。我们在一副图像中搜索这样的特征,找到它们,而且也能在其他图像中找到这些特征,然后再把它们拼接到一起。我们的这些能力都是天生的。角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在三维场景重建运动估计,目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着菲常重要的作用。在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。(角点易区分)图像特征...原创 2021-08-18 16:24:42 · 1376 阅读 · 0 评论 -
OpenCV(二十)模板匹配
目录一、基础理论1、作用与过程2、原理3、函数matchTemplate二、代码三、效果参考资料一、基础理论1、作用与过程所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,整个任务的思路就是:按照滑窗的思路不断的移动模板图片,计算其与图像中对应区域的匹配度,最终将匹配度最高的区域选择为最终的结果。2、原理如果输入图像的大小为(WxH),而模板图像的大小为(wxh),则输出图像的大小将为(W-w + 1,H-h...原创 2021-08-18 09:08:41 · 664 阅读 · 0 评论 -
OpenCV(十九)直方图(直方图计算、掩膜、均衡化、自适应均衡化)
一、基础理论直方图是数据统计的一种方法,并且将统计值组织到一系列实现定义好的 bin当中。其中, bin为直方图中经常用到的一个概念,可以译为“直条”或“组距”,其数值是从数据中计算出的特征统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。图像直方图(Image Histogram)是用以表示数字图像中亮度分布(灰度)的直方图,标绘了图像中每个亮度值的像素个数。这种直方图中,横坐标的左侧为较暗的区域,而右侧为较亮的区域。因此—张较暗图片的直方图中的数据多集中...原创 2021-08-17 15:08:35 · 1665 阅读 · 0 评论 -
OpenCV(十七)边缘检测3 -- Canny算子(最优边缘检测)
目录一、基础理论1、原理2、过程3、Canny函数代码效果参考资料一、基础理论1、原理首先在x和y方向求一阶导数,然后组合为4个方向的导数,这些方向导数达到局部最大值的点就是组成边缘的候选点。2、过程第一步,图像降噪。梯度算子可以用于增强图像,本质上是通过增强边缘轮廓来实现的,也就是说是可以检测到边缘的。但是,它们受噪声的影响都很大。那么我们就要先去除噪声,因为噪声就是灰度变化很大的地方,容易被识别为伪边缘。第二步,计算图像梯度,得到可能边缘。计算图原创 2021-08-16 11:53:53 · 1518 阅读 · 0 评论 -
OpenCV(十八)霍夫变换(直线、线段与圆检测)
一、基础理论霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如直线、椭圆、圆、弧线等。...原创 2021-08-16 11:47:24 · 16302 阅读 · 1 评论 -
OpenCV(十六)边缘检测2 -- Laplace(拉普拉斯)二阶微分算子
目录一、基础理论1、原理2、过程3、Laplacian函数代码效果参考资料一、基础理论1、原理Laplace算子作为边缘检测之一,和Sobel算子一样也是工程数学中常用的一种积分变换,属于空间锐化滤波操作。定义:拉普拉斯算子(Laplace Operator)是n维欧几里德空间中的一个二阶微分算子,定义为梯度(▽f)的散度(▽·f)。拉普拉斯算子也可以推广为定义在黎曼流形上的椭圆型算子,称为拉普拉斯-贝尔特拉米算子。原理:拉普拉斯算子是二阶微分线性..原创 2021-08-15 10:58:14 · 4893 阅读 · 2 评论 -
OpenCV(十五)边缘检测1 -- Sobel算子(一阶微分算子,X、Y方向边缘检测)
目录一、基础理论二、实战1、对x方向微分2、对y方向微分3、线性混合总代码参考资料一、基础理论Sobel算子:用于边缘检测的离散微分算子。梯度公式:对于图像而言,它是离散的,所以h的最小值只能是1了,那么这意味着,图像中某个像素位置的梯度(以x方向为例)等于它左右两个像素点的像素之差除以2。例:假设有一行像素是这样分布的:123 155 173那么,像素值为155的像素位置x方向的梯度为(173 - 123)/2 = 25Prewit...原创 2021-08-15 09:51:08 · 55043 阅读 · 8 评论 -
OpenCV(十四)图像阈值
目录一、基础理论1.二进制阈值化2.反二进制阈值化3.截断阈值化4.阈值化为05.反阈值化为0函数代码效果参考答案一、基础理论在二维数字图像中,其每个像素点对应了不同的像素值,其像素值各不相同。可以对像素值特定范围内的图像图像进行操作,划分这个范围的值就被称为图像阈值,它不是一个固定的量级,是根据每幅图像和处理要求动态改变。例如我们可以从图像中利用阈值分割出我们需要的部分。例:1.二进制阈值化在运用二进制阈值化操作时,首...原创 2021-08-13 12:41:51 · 1802 阅读 · 0 评论 -
OpenCV(十二)漫水填充算法
一、原理与定义由于AOE网中的有些活动是可以并行进行的,完工的最早时间取决于最长的那一条路径。路径长度最长的路径就叫做 关键路径。参考资料https://blog.csdn.net/been123456789jimmy/article/details/106515471?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162866184516780269894652%2522%252C%2522scm%2522%253A原创 2021-08-13 09:38:33 · 2781 阅读 · 1 评论 -
OpenCV(十一)图像滤波(平滑处理)(平均、中值、高斯、双边滤波)
目录一、概念二、线性滤波1、概述2、线性滤波原理:三、滤波实例1、均值滤波(cv::blur())(简单滤波)2、中值滤波(cv::medianBlur())3、高斯滤波(cv::GaussianBlur())4、双边滤波(cv::bilateralFilter())参考资料一、概念“平滑”通常又称“模糊”,是一种简单常用的图像处理操作。进行平滑处理的原因有很多,但通常是用来去除噪声和相机失真,平滑在按照一定的原理来降低图像分辨率中也有重要应用。原创 2021-08-12 17:30:25 · 34975 阅读 · 2 评论 -
OpenCV(十)ROI感兴趣区域
1、概念在图像处理的时候,常常我们只想对一部分图像进行处理,也就是感兴趣区域(ROI,region of interest)。我们把一部分图像区域分化独立出来进行单独处理,这样不仅减少了图像处理分析的工作量,而且有利于精度的提高和减少处理时间。定义ROI区域的两种方法:(1)Rect()函数,指定矩形的左上角坐标和矩形的长宽来定义一个矩形区域作为ROI区域;Mat imageROI = image(Rect(x, y, width, height);// ...原创 2021-08-12 14:50:55 · 1572 阅读 · 0 评论 -
OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)
目录概述1、指针访问2、迭代器访问3、at()函数访问总代码效果参考资料概述访问图像像素值是图像处理的基本操作。OpenCV提供了很多访问方式,比较常用的三种方式:(1) 通过指针访问 (逐通道)(2) 通过迭代器访问 (逐像素)(3) 动态地址计算,通过at()函数实现方法比较:(1)用指针访问像素,速度最快;但在彩色图像处理中,如果要单独对某一个颜色分量处理,则需要通过数学公式计算,不是很直观;(2)推荐用通过迭代器访问像素,速度快,而且提取BGR...原创 2021-08-12 12:30:22 · 3806 阅读 · 0 评论 -
OpenCV(九)形态学操作4--礼帽与黑帽(顶帽与底帽)
目录一、顶帽运算二、底帽运算三、底帽运算应用(二值图像底帽运算)1、原图转灰度图,再转二值图像2、灰度图底帽处理3、二值图闭运算代码总代码参考资料一、顶帽运算顶帽运算 = 原图像 - 开运算开运算可以消除暗背景下的较亮区域,那么如果用原图减去开运算结果就可以得到原图中灰度较亮的区域,所以又称白顶帽变换。//顶帽运算void TopHat(){ //开运算 Mat kernel = getStructuringElement(MORPH_REC原创 2021-08-11 11:04:28 · 10298 阅读 · 5 评论 -
OpenCV(八)形态学操作3--形态学梯度实现轮廓分析(基本梯度、内部梯度、外部梯度、方向梯度X(Y))
目录形态学梯度概述一、基本梯度1、原理2、代码3、效果二、内部梯度1、原理2、代码3、效果三、外部梯度1、原理2、代码3、效果四、方向梯度1、原理2、二值化图像(黑白)3、求X(Y)轴方向梯度X轴:Y轴:参考资料:形态学梯度概述作用:保留物体的边缘轮廓(突出高亮区域)形态学梯度操作的输出图像像素值是在对应结构元素而非局部过渡区域所定义的领域中灰度级强度变化的最大值。 对二值图像进行形态学操作可...原创 2021-08-10 14:30:03 · 1695 阅读 · 0 评论 -
OpenCV(基础补充)图像二值化
目录图像二值化(黑白化)步骤:1、彩图化灰度图2、灰度图化黑白图(二值化)图像二值化(黑白化)步骤:彩色图像——>灰度图像——>二值图像1、彩图化灰度图//灰度图void ToGray(){ // 转为灰度图 cvtColor(img, grayImage, COLOR_BGR2GRAY); imshow("灰度图像", grayImage);}2、灰度图化黑白图(二值化)//黑白图(二值化)void ToBin(){ //.原创 2021-08-10 13:49:37 · 2140 阅读 · 0 评论 -
OpenCV(七)形态学操作2--开运算与闭运算
目录概述:morphologyEX函数一、开运算(分开)1、原理2、代码3、效果二、闭运算(封闭)1、原理2、代码3、效果参考资料:概述: 运算类型 操作 目的 开运算 先腐蚀再膨胀 可在纤细点出分离物体。有助于消除噪音 闭运算 先膨胀后腐蚀 用于排除前景对象中的小孔或...原创 2021-08-10 10:42:10 · 3467 阅读 · 0 评论 -
OpenCV(六)形态学操作1--基础:膨胀与腐蚀(回调函数)
二、膨胀让亮的区域变大找卷积核覆盖区域中的最大值,来填充当前位置。原理:取每个位置领域内最大值,所以膨胀后输出图像的总体亮度的平均值比起原图会有所升高,图像中比较亮的区域的面积会变大,而较暗物体的尺寸会减小甚至消失。(红色是参考点/锚点)三、腐蚀让暗的区域变大找卷积核覆盖区域中的最小值(0),有则覆盖源点, 没有则不管。参考资料https://blog.csdn.net/weixin_41695564/article/details/7992...原创 2021-08-09 17:00:09 · 1094 阅读 · 0 评论 -
OpenCV(五)绘制图形与文本
目录一、绘制直线1、函数line()2、代码3、效果二、绘制矩形1、函数rectangle()1-1、左上角顶点+右下角顶点1-2、矩形位置和长宽2、代码3、效果三、绘制椭圆1、函数ellipse()2、代码3、效果四、绘制圆形1、circle()函数2、代码3、效果五、添加文本1、putText()函数2、代码3、效果注:OpenCV中RGB排列是按照BGR排的(即相反顺序)一、绘制直线1、...原创 2021-08-08 10:41:41 · 456 阅读 · 0 评论 -
OpenCV(四)图像线性变换、图像加减乘除、图像逻辑运算(线性变换包括:图像线性混合、亮度和对比度增强、线性变换API)
目录一、图像线性混合1、原理及函数介绍2、代码3、图像二、亮度和对比度增强1、概念(亮度和对比度)2、原理3、单通道处理(灰度图)代码:效果:4、多通道处理(彩图)代码:效果:5、代码三、线性变换API代码总代码参考资料:一、图像线性混合1、原理及函数介绍原理(公式):dst(r, c) = * src1(r, c) +* src2(r, c) +本质:...原创 2021-08-07 12:34:48 · 3836 阅读 · 0 评论 -
OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)
一、彩图灰度化1、主要函数cvtColor()介绍彩图灰度化要用到cv2.cvtColor() 颜色转换函数cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );. InputArray src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类. OutputArray dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类. int code: ...原创 2021-08-06 11:48:12 · 4222 阅读 · 1 评论 -
OpenCV(二)逐像素的图像复制、图像边缘检测(自实现和API实现)
目录一、逐像素的图像复制1、代码:2、效果二、简单的图像边缘检测(自实现)0、图像处理的卷积运算1、简单模糊处理2、强化边缘处理1、原理2、代码3、效果三、简单的图像边缘检测(调用API)1、设置卷积核kernel2、利用filter()函数进行卷积运算3、总代码一、逐像素的图像复制这里主要是为了强化图像的指针应用。//图像的指针用法举例cv::Mat image = cv::Mat(400, 600, CV_8UC1); ...原创 2021-08-05 20:17:16 · 1139 阅读 · 0 评论 -
OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)
目录一、显示图像1、过程2、代码3、运行效果二、操作图像像素1、逐RGB涂色(单循环)(快)1-1、过程2-2、代码2-3、运行结果2、逐行涂色(双循环)(慢)3、算法快慢比较总代码一、显示图像1、过程1、打开图像;2、新建窗口3、在窗口中显示图像2、代码//显示图像#include <iostream>#include<opencv2/opencv.hpp>using namespace c..原创 2021-08-05 11:37:25 · 828 阅读 · 0 评论