Python实现使用卷积提取图片轮廓功能示例


Posted in Python onMay 12, 2018

本文实例讲述了Python实现使用卷积提取图片轮廓功能。分享给大家供大家参考,具体如下:

一、实例描述

将彩色的图片生成带边缘化信息的图片。

本例中先载入一个图片,然后使用一个“3通道输入,1通道输出的3*3卷积核”(即sobel算子),最后使用卷积函数输出生成的结果。

二、代码

'''''
载入图片并显示
首先将图片放到代码的同级目录下,通过imread载入,然后将其显示并打印出来
'''
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
import tensorflow as tf
myimg = mpimg.imread('2.jpg') # 读取和代码处于同一目录下的图片
#myimg = mpimg.imread('img.jpg') # 读取和代码处于同一目录下的图片
plt.imshow(myimg) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()
print(myimg.shape)
'''''
上面这段代码输出(960, 720, 3),可以看到,载入图片的维度是960*720大小,3个通道
'''
'''''
这里需要手动将sobel算子填入卷积核里。使用tf.constant函数可以将常量直接初始化到Variable中,因为是3个通道,所以sobel卷积核的每个元素都扩成了3个。
注意:sobel算子处理过的图片并不保证每个像素都在0~255之间,所以要做一次归一化操作(即将每个值减去最小的结果,再除以最大值与最小值的差),让生成的值都在[0,1]之间,然后在乘以255
'''
#full=np.reshape(myimg,[1,3264,2448,3])
full=np.reshape(myimg,[1,960,720,3])
#inputfull = tf.Variable(tf.constant(1.0,shape = [1, 3264, 2448, 3]))
inputfull = tf.Variable(tf.constant(1.0,shape = [1, 960, 720, 3]))
filter = tf.Variable(tf.constant([[-1.0,-1.0,-1.0], [0,0,0], [1.0,1.0,1.0],
                  [-2.0,-2.0,-2.0], [0,0,0], [2.0,2.0,2.0],
                  [-1.0,-1.0,-1.0], [0,0,0], [1.0,1.0,1.0]],shape = [3, 3, 3, 1]))
#步长为1*1,padding为SAME表明是同卷积的操作。
op = tf.nn.conv2d(inputfull, filter, strides=[1, 1, 1, 1], padding='SAME') #3个通道输入,生成1个feature ma
o=tf.cast( ((op-tf.reduce_min(op))/(tf.reduce_max(op)-tf.reduce_min(op)) ) *255 ,tf.uint8)
with tf.Session() as sess:
  sess.run(tf.global_variables_initializer() )
  t,f=sess.run([o,filter],feed_dict={ inputfull:full})
  #print(f)
  #t=np.reshape(t,[3264,2448])
  t=np.reshape(t,[960,720])
  plt.imshow(t,cmap='Greys_r') # 显示图片
  plt.axis('off') # 不显示坐标轴
  plt.show()

三、运行结果

Python实现使用卷积提取图片轮廓功能示例

四、说明

可以看出,sobel的卷积操作之后,提取到一张含有轮廓特征的图像。

再查看一下图片属性

Python实现使用卷积提取图片轮廓功能示例

注:这里用到了tensorflow模块,可使用pip命令安装:

pip install tensorflow

如果遇到以下红字错误,可以看到提示更新pip到更新的版本(不报错可直接跳过到下一标题)。

Python实现使用卷积提取图片轮廓功能示例

更新pip到最新版本:

python -m pip install --upgrade pip

PS:截至目前,tensorflow尚不支持python3.6版本,建议使用兼容性较好的Python3.5版本

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中实现两个字典(dict)合并的方法
Sep 23 Python
python魔法方法-属性访问控制详解
Jul 25 Python
Python 3实战爬虫之爬取京东图书的图片详解
Oct 09 Python
基于数据归一化以及Python实现方式
Jul 11 Python
python3.6使用tkinter实现弹跳小球游戏
May 09 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
python定时任务 sched模块用法实例
Nov 04 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
keras 如何保存最佳的训练模型
May 25 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 Python
python高温预警数据获取实例
Jul 23 Python
在cmd中运行.py文件: python的操作步骤
May 12 #Python
对命令行模式与python交互模式介绍
May 12 #Python
python执行系统命令后获取返回值的几种方式集合
May 12 #Python
在CMD命令行中运行python脚本的方法
May 12 #Python
在cmd命令行里进入和退出Python程序的方法
May 12 #Python
对python中执行DOS命令的3种方法总结
May 12 #Python
python 信息同时输出到控制台与文件的实例讲解
May 11 #Python
You might like
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
php 获取可变函数参数的函数
2009/08/26 PHP
php浏览历史记录的方法
2015/03/10 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
JavaScript delete操作符应用实例
2009/01/13 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
PyQt5实现下载进度条效果
2018/04/19 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
产品促销活动策划书
2014/01/15 职场文书
优秀员工评语
2014/02/10 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书