我的编程空间,编程开发者的网络收藏夹
学习永远不晚

《计算机视觉技术与应用》重点复盘

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

《计算机视觉技术与应用》重点复盘

系列文章目录

《计算机视觉技术与应用》-----第二章 图像处理基础

《计算机视觉技术与应用》-----第三章 图形用户界面

《计算机视觉技术与应用》-----第四章 图像变换

《计算机视觉技术与应用》-----第五章 边缘和轮廓

《计算机视觉技术与应用》-----第六章 边缘和轮廓

《计算机视觉技术与应用》-----第七章 边缘和轮廓

《计算机视觉技术与应用》----- 重点复盘


文章目录


前言


一、重点掌握

填空(15个题),判断(10个题),简答(1个题)共60分。

第一章 OpenCV起步

  • 安装Numpy命令是pip install Numpy

第二章 图像处理基础

  • 在Python程序中,OpenCV使用NumPy数组来存储图像。 OpenCV默认的图像格式为BGR,即3通道图像数组的3个维度依次为B(蓝色)、G(绿色)和R(红色)通道的像素。
  • 使用zeros()函数创建数组,数组元素默认值是0
  • img.shape的输出结果为(512,512,3),说明表示彩色图像的一个三维数组,3个值依次表示图像的高度、宽度和通道数;图像的分辨率为512x512
  • OpenCV播放视频的实质是逐读取和显示图像。 通常,计算机将灰度处理为256级,0表示黑色255表示白色。
    cv2.split()函数用于拆分通道。

第三章 图形用户界面

  • 绘制矩形的函数是cv2.rectangle() ,绘制圆的函数是cv2.circle()
  • 绘制椭圆的函数是cv2.ellipse()
  • 绘制文本的函数是cv2.putText()

第四章 图像变换

  • cv2.COLOR_BGR2RGB:将BGR色彩空间转换为RGB色彩空间。
  • GRAY色彩空间通常指8位灰度图像,其颜色取值范围是**[0,256]** 。
  • YCrCb色彩空间用亮度Y、红色Cr和蓝色Cb表示图像。
  • 图像翻转函数是cv2.flip()
  • HSV色彩空间使用色调、饱和度和亮度表示图像。
  • 仿射变换包含了平移、旋转、缩放等操作。
  • 图像模糊主要目的是消除图像噪声和边缘。
  • 均值滤波是指以当前点为中心,用其周围N x N个点像素值的平均值代替当前点的像素值。
  • 中值滤波是取中间值作为邻域中心点的像素值。
  • 开运算先将图像执行腐蚀操作,再对腐蚀结果执行膨胀操作。

第五章 边缘和轮廓

  • 图像的边缘是指图像中灰度值发生急剧变化的位置,边缘检测的目的是为了绘制出边缘线条
  • 边缘检测的结果通常为黑白图像,图像中的白色线条表示边缘

第六章 直方图

  • 直方图横坐标表示图像像素的灰度级,纵坐标表示像素灰度级的数量。
  • 二维直方图统计像素的色相饱和度,用于查找图像的颜色直方图。

第七章 模版匹配和图像分割

  • 模板匹配是指在当前图像中查找与目标图像相近的部分。图像分割是指将前景对象从图像中分割或提取出来。
  • 单目标匹配是指输入图像中只存在一个可能匹配结果

第八章 特征检测

  • ORB特征检测以FAST特征检测器和BRIEF描述符为基础进行了改进,以获得更好的特征检测性能。
    FAST特征检测器主要根据像素周围16个像素的强度和阈值参数来判断像素是否为关键点。

二、编程题

两个编程题,共40分。

第二章习题

在这里插入图片描述

```python#习题2-1.py:创建一幅大小为240×320的图像,图像中心是一个大小为100×100的红色正方形,周围是黑色import cv2import numpyimg = numpy.zeros((240,320,3),dtype=numpy.uint8) #创建黑色背景img[70:170,110:210,2]=255  #创建红色区域(100*100)cv2.imshow('xiti2-1',img)cv2.waitKey(0)
#习题2-2.py:选择一幅彩色图像,完成下列操作:#(1)将图像转换为灰度图像显示。#(2)将图像尺寸减小为原来的1/2显示。import cv2img=cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)#(1)将彩色图像转换为灰度图像cv2.imshow('GRASCALE',img)img=cv2.imread('lena.jpg',cv2.IMREAD_REDUCED_COLOR_2)#(2)将图像尺寸缩小为原来的1/2cv2.imshow('COLOR_2',img)cv2.waitKey(0)cv2.waitKey(0)
#习题2-3.py:选择一幅彩色图像,通过像素更改,在图像中显示一个大小为80×100的黑色正方形。import cv2img=cv2.imread('lena.jpg')h,w,s=img.shape  #得到原图的高宽通道h1=int(h/2)  #获取原图高度的一半,并且强制转换为intw1=int(w/2)img[h1-40:h1+40,w1-50:w1+50,:]=0  #也可以直接通过像素区域打码 在img中 img[::]=255cv2.imshow('xiugai',img)cv2.waitKey(0)
#习题2-4.py:选择一幅彩色图像,分别显示其B、G、R通道图像。import cv2img = cv2.imread('lena.jpg')cv2.imshow('lena',img)b,g,r=cv2.split(img)#重点cv2.imshow('lena-b',b)cv2.imshow('lena-g',g)cv2.imshow('lena-r',r)cv2.waitKey(0)
#习题2-5.py:选择一幅彩色图像,用NumPy数组创建掩模,在图像中心取出大小为80×120的图像。import cv2import numpyclass="lazy" data-src1 = cv2.imread('lena.jpg')h,w,s=class="lazy" data-src1.shapeimg = numpy.zeros((h,w,s),dtype=numpy.uint8) #创建黑色背景h1=int(h/2)w1=int(w/2)img[h1-40:h1+40,w1-60:w1+60,:]=255img2=cv2.bitwise_and(class="lazy" data-src1,img) #题目要求是用Numpy数组创建掩膜的方式打码 img[10:90,20:120,:]=255cv2.imshow('yanmo',img2)cv2.waitKey(0)

第五章习题

在这里插入图片描述

#习题5-1 选择一幅图像,对其执行Laplacian边缘检测import cv2img = cv2.imread('bee.jpg')cv2.imshow('original',img)#Laplacian边缘检测img2 = cv2.Laplacian(img,cv2.CV_8U,ksize=1)cv2.imshow('L',img2)cv2.waitKey(0)
#习题5-2 选择一幅图像,对其执行Sobel边缘检测import cv2img = cv2.imread('bee.jpg')cv2.imshow('original',img)#Sobel边缘检测img3 = cv2.Sobel(img,cv2.CV_8U,0,1) #0表示对x不求偏导,1表示对y偏导 dx>=0 && dy>=0 && dx+dy>0cv2.imshow('C',img3)cv2.waitKey(0)
#习题5-3 选择一幅图像,对其执行Canny边缘检测import cv2img = cv2.imread('bee.jpg')cv2.imshow('original',img)#Canny边缘检测img4 = cv2.Canny(img,100,200,apertureSize=3)cv2.imshow('Canny',img4)cv2.waitKey(0)
#test5-4.py:查找和绘制轮廓#先查找后绘制,前7行代码与查找轮廓代码一致import cv2import numpy as npimg=cv2.imread('shapes.jpg')        #读取图像cv2.imshow('original',img)      #显示原图像gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转化为灰度图像ret,img2=cv2.threshold(gray,125,255,cv2.THRESH_BINARY)#二值化阈值处理c,h=cv2.findContours(img2,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) img3=np.zeros(img.shape, np.uint8)+255     #按原图大小创建一幅白色图像#image=cv2.drawContours(image,contours,contourIdx,color,thickness)#image:原图#contours为要绘制的轮廓img3=cv2.drawContours(img3,c,-1,(0,0,255),2)    #绘制轮廓 -1表示绘制所有轮廓cv2.imshow('Contours',img3)                  #显示轮廓图像cv2.waitKey(0)      #按任意键结束等待cv2.destroyAllWindows()                         #关闭所有窗口

总结

来源地址:https://blog.csdn.net/xiaoren886/article/details/128365735

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

《计算机视觉技术与应用》重点复盘

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录