| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 飞桨入门学习 -> 正文阅读 |
|
[人工智能]飞桨入门学习 |
文章目录
需要引用的库
灰度图Gray Scale Image 或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。 分辨率=画面水平方向的像素值 * 画面垂直方向的像素值 屏幕分辨率例如,屏幕分辨率是1024×768,也就是说设备屏幕的水平方向上有1024个像素点,垂直方向上有768个像素点。像素的大小是没有固定长度的,不同设备上一个单位像素色块的大小是不一样的。 例如,尺寸面积大小相同的两块屏幕,分辨率大小可以是不一样的,分辨率高的屏幕上面像素点(色块)就多,所以屏幕内可以展示的画面就更细致,单个色块面积更小。而分辨率低的屏幕上像素点(色块)更少,单个像素面积更大,可以显示的画面就没那么细致。 图像分辨率例如,一张图片分辨率是500x200,也就是说这张图片在屏幕上按1:1放大时,水平方向有500个像素点(色块),垂直方向有200个像素点(色块)。 在同一台设备上,图片分辨率越高,这张图片1:1放大时,图片面积越大;图片分辨率越低,这张图片1:1缩放时,图片面积越小。(可以理解为图片的像素点和屏幕的像素点是一个一个对应的)。 但是,在屏幕上把图片超过100%放大时,为什么图片上像素色块也变的越大,其实是设备通过算法对图像进行了像素补足,我们把图片放的很大后看到的一块一块的方格子,虽然理解为一个图像像素,但是其实是已经补充了很多个屏幕像素;同理,把图片小于100%缩小时,也是通过算法将图片像素进行减少。 使用OpenCV加载并保存图片 OpenCV函数:cv2.imread(), cv2.imshow(), cv2.imwrite() 加载图片 参数1:图片的文件名如果图片放在当前文件夹下,直接写文件名就行了,如’lena.jpg’ 参数2:读入方式,省略即采用默认值
1.通道交换读取图像,然后将RGB通道替换成BGR通道,需要注意的是,opencv读取的图像默认是BGR。cv2.cvtColor函数可以参考Color Space Conversions img = cv2.imread(‘imori.jpg’) 2.灰度化(Grayscale)灰度化的计算公式为: 二值化img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 4. 大津二值化算法(Otsu’s Method)img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 5. HSV变换img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 进行色相反转 img[:, :, 0] = (img[:, :, 0] + 180) % 360 6. 减色处理img = img // 64 * 64 + 32 7. 平均池化(Average Pooling)img = skimage.measure.block_reduce(img, (8, 8, 1), np.mean) 8. 最大池化(Max Pooling)img = skimage.measure.block_reduce(img, (8, 8, 1), np.max) 9. 高斯滤波(Gaussian Filter)img = cv2.GaussianBlur(img, (3, 3), 1.3) 10 中值滤波img = cv2.medianBlur(img, 3) 11. 均值滤波器img = cv2.blur(img, (3, 3)) 12. Motion Filter生成一个对角线方向的卷积核(kernel) 13. MAX-MIN滤波器MAX-MIN滤波器使用网格内像素的最大值和最小值的差值对网格内像素重新赋值。通常用于边缘检测。 img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 14. 差分滤波器(Differential Filter)差分滤波器对图像亮度急剧变化的边缘有提取效果,可以获得邻接像素的差值。 img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 纵向: 横向: img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 16. Prewitt滤波器Prewitt滤波器是用于边缘检测的一种滤波器,其函数可以参考https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.prewitt.html 纵向: 横向:
纵向: 横向:
19. Log滤波器LoG即高斯-拉普拉斯(Laplacian of Gaussian)的缩写,使用高斯滤波器使图像平滑化之后再使用拉普拉斯滤波器使图像的轮廓更加清晰。其函数可以参考https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_laplace.html
21. 直方图均衡化直方图均衡化是一种增强图像对比度的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布。其参考https://stackoverflow.com/questions/31998428/opencv-python-equalizehist-colored-image
22. 伽马校正
23. 常见的插值方法
RGB或BGR到灰度(COLOR_RGB2GRAY,COLOR_BGR2GRAY) 经验之谈:颜色转换其实是数学运算,如灰度化最常用的是:gray=R0.299+G0.587+B*0.114。 HSV是一个常用于颜色识别的模型,相比BGR更易区分颜色 经验之谈:OpenCV中色调H范围为[0,179],饱和度S是[0,255],明度V是[0,255]。虽然H的理论数值是0°~360°,但8位图像像素点的最大值是255,所以OpenCV中除以了2,某些软件可能使用不同的尺度表示,所以同其他软件混用时,记得归一化。 我们实现一个使用HSV来只显示视频中蓝色物体的例子,步骤如下: 捕获视频中的一帧 阈值分割使用固定阈值、自适应阈值和Otsu阈值法"二值化"图像 固定阈值分割固定阈值分割很直接,一句话说就是像素点值大于阈值变成一类值,小于阈值变成另一类值。 cv2.threshold()用来实现阈值分割,ret是return value缩写,代表当前的阈值。函数有4个参数: 参数1:要处理的原图,一般是灰度图
经验之谈:很多人误以为阈值分割就是二值化。从上图中可以发现,两者并不等同,阈值分割结果是两类值,而不是两个值。 自适应阈值看得出来固定阈值是在整幅图片上应用一个阈值进行分割,它并不适用于明暗分布不均的图片。 cv2.adaptiveThreshold()自适应阈值会每次取图片的一小部分计算阈值,这样图片不同区域的阈值就不尽相同。它有5个参数,其实很好理解,先看下效果: 参数1:要处理的原图 Otsu阈值在前面固定阈值中,我们是随便选了一个阈值如127,那如何知道我们选的这个阈值效果好不好呢?答案是:不断尝试,所以这种方法在很多文献中都被称为经验阈值。Otsu阈值法就提供了一种自动高效的二值化方法。 小结
图像几何变换实现旋转、平移和缩放图片 缩放图片缩放就是调整图片的大小,使用cv2.resize()函数实现缩放。可以按照比例缩放,也可以按照指定的大小缩放: 我们也可以指定缩放方法interpolation,更专业点叫插值方法,默认是INTER_LINEAR,全部可以参考:InterpolationFlags 缩放过程中有五种插值方式:
翻转图片镜像翻转图片,可以用cv2.flip()函数: 其中,参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。 dst = cv2.flip(img, 1) plt.imshow(dst) 平移图片平移是用仿射变换函数cv2.warpAffine()实现的:
绘图功能绘图功能 img:要绘制形状的图片 添加文字使用cv2.putText()添加文字,它的参数也比较多,同样请对照后面的代码理解这几个参数: 参数2:要添加的文本
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 20:28:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |