IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> OpenCV中的灰度化/二值化/canny -> 正文阅读

[人工智能]OpenCV中的灰度化/二值化/canny

中央电视台,中央电视台,欢迎大家来到今日份opencv效果展示,下面介绍一下参赛选手,我家著名选狗,咩咩狗,今天大家看看咩咩的几幅不同的面孔。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?来给大家叫两声,汪,汪

?1.灰度化

?直接上代码,默认大家都会读图

import cv2

path = r'./miemie4.jpg'
ori_image = cv2.imread(path)
cv2.imshow('ori_image',ori_image)

#灰度化
gray_image = cv2.cvtColor(ori_image, cv2.COLOR_BGR2GRAY)
cv2.imshow('gray_image',gray_image)
cv2.waitKey()

感觉不大对劲,当世界变灰,总会给人一种它不在了的迹象,其实它活蹦乱跳的一批啊,其实还有一种方式

import cv2

path = r'./miemie4.jpg'
ori_image = cv2.imread(path,0)
cv2.imshow('ori_image',ori_image)
cv2.waitKey()

?看出来哪里不一样了吗,imread后面多了一个0,表示读图的模式0表示以灰度图读进来,-1表示以原图读进来,1也有一个模式,但是不建议使用。show出来和刚刚没什么两样

?2.二值化

二值化啥意思,顾名思义,就是二值化,二值化的效果主要看什么,主要看你设定的阈值高低,我这里演示的都是127的阈值,意思就是大于127,变成255,小于127变成0(或者反过来),这个还取决于你的二值化方式,直接上代码看看,我都说的是什么,一下就明白了

import cv2

path = r'./miemie4.jpg'
ori_image = cv2.imread(path)
# cv2.imshow('ori_image',ori_image)

#灰度化
gray_image = cv2.cvtColor(ori_image, cv2.COLOR_BGR2GRAY)
# cv2.imshow('gray_image',gray_image)
#二值化
ret, th1 = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY)
ret, th2 = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY_INV)
ret, th3 = cv2.threshold(gray_image, 127, 255, cv2.THRESH_TRUNC)
ret, th4 = cv2.threshold(gray_image, 127, 255, cv2.THRESH_TOZERO)
ret, th5 = cv2.threshold(gray_image, 127, 255, cv2.THRESH_TOZERO_INV)
cv2.imshow('th1',cv2.resize(th1,(int(th1.shape[1]/2),int(th1.shape[0]/2))))
cv2.imshow('th2',cv2.resize(th2,(int(th1.shape[1]/2),int(th1.shape[0]/2))))
cv2.imshow('th3',cv2.resize(th3,(int(th1.shape[1]/2),int(th1.shape[0]/2))))
cv2.imshow('th4',cv2.resize(th4,(int(th1.shape[1]/2),int(th1.shape[0]/2))))
cv2.imshow('th5',cv2.resize(th5,(int(th1.shape[1]/2),int(th1.shape[0]/2))))
cv2.waitKey()

做个简单说明,刚刚说的那个阈值就是下面左边箭头那个位置,二值化的方式就是右边那个箭头的那个位置,一共有5种,其实还有几种,常见的就是这几种,值得一提的是还有自适应阈值的二值化方式,这里先不介绍。

?效果图展示一下,传说中的人模狗样吧,这么说也不合适,关键没有人样啊

再来个阈值50,看看效果

算了算了不试了,看不下去了。

稍微提醒一下,一般二值化的动作会接在灰度化之后,可以说这是一套相当强力的组合拳。各位看UFC和MMA吗?建议看看嘴炮麦康纳和毒液佩奇的比赛,真的挺有意思。

3.Canny

提供canny的写法,上代码

import cv2

path = r'./miemie4.jpg'
ori_image = cv2.imread(path)
cv2.imshow('ori_image',ori_image)

canny = cv2.Canny(ori_image,50,100)
cv2.imshow('Canny_edge_0',canny)

blurred = cv2.GaussianBlur(ori_image, (3,3), 0)
gray = cv2.cvtColor(blurred, cv2.COLOR_BGR2GRAY)
# 求X方向上的梯度
grad_x = cv2.Sobel(gray, cv2.CV_16SC1, 1, 0)
# 求y方向上的梯度
grad_y = cv2.Sobel(gray, cv2.CV_16SC1, 0, 1)
# 将梯度值转化到8位上来
x_grad = cv2.convertScaleAbs(grad_x)
y_grad = cv2.convertScaleAbs(grad_y)
# 将两个梯度组合起来
src1 = cv2.addWeighted(x_grad, 0.5, y_grad, 0.5, 0)
# 组合梯度用canny算法,其中50和100为阈值
edge = cv2.Canny(src1, 50, 100)
cv2.imshow("Canny_edge_1", edge)
edge1 = cv2.Canny(grad_x, grad_y, 10, 100)
cv2.imshow("Canny_edge_2", edge1)
cv2.waitKey()

可以比较一下,三个canny出来的图的差距还是挺大的,大家可以自行对比一下代码,看看都是咋回事,还有你觉得那个图表现得额最好。

由于今天工作强大比较大,先更新到这里。比赛还没有结束,咩咩狗作为种子选手,在下半场又会给我们带来怎么样的表现呢?暂定一下,马上回来,下半场啥时候,看工作强大而定

值得一提的事,今天办公室让抽签看看这周谁是清洁委员,老板让我写一个代码来抽签,我写的代码还能抽到我,我也是真实在啊,就是做个弊谁能知道呢,害,还是太正直了。希望下次抽签random这个库给我几分薄面。

?至此,敬礼,salute!!!

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:13:42  更:2021-07-27 16:14:57 
 
开发: 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/17 20:47:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码