博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python语言下图像的操作方法总结
阅读量:5124 次
发布时间:2019-06-13

本文共 1402 字,大约阅读时间需要 4 分钟。

本章主要讲解 图像的读取方式、灰度化操作、图像转化为矩阵的方法

假设 strImgPath是图像的路径, img对象将图片读入到内存中

读取图像的第一种方式:skImage

from skimage import ioimg=io.imread(strImgPath) # 读出的3D

读取图像的第二种方式:matplotlib

import matplotlib.image as mpimg #mpimg 用于读取图片import matplotlib.pyplot as plt # plt 用于显示图片img = mpimg.imread(strImgPath) # 读取图像plt.imshow(lena) # 显示图片plt.axis('off') # 不显示坐标轴plt.show()

# 2、显示图片的第一个通道lena_1 = lena[:,:,0]plt.imshow('lena_1')plt.show()

# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:#方法一plt.imshow('lena_1', cmap='Greys_r')plt.show()

#方法二img = plt.imshow('lena_1')img.set_cmap('gray') # 'hot' 是热量图plt.show()

#3、将 RGB 转为灰度图def rgb2gray(rgb):    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])gray = rgb2gray(lena)    # 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))plt.imshow(gray, cmap='Greys_r')plt.axis('off')plt.show()

第三种方式: PIL

PIL模块提供有对图像操作的基本方法;

Image.convert() 根据不同的参数可以把图片转化为不同的灰度图像,其中参数”L”是最常见的参数;

转化为矩阵的方式可以用numpy模块的asarrsy() 也可以用numpy的matrix()

from PIL import Imageimg=Image.open(strImgPath)img=np.asarray(strImgPath) # 转换为矩阵im = im.convert("L") # 灰度化data = im.getdata()# 获取灰度化以后的矩阵data = np.matrix(data,dtype='float')/255.0 # 对矩阵进行二值化PS 这种方式很low, 大津法效果更好,cv2的二值化就是用大津法

第四种方式:opencv

Cv2是opencv的python版,很多函数名称和操作方式和C++实现的opencv很相像,在此不赘述。

import cv2img= = cv2.imread(strImgPath) # 读取图像img2gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 将图片压缩为单通道的灰度图

转载于:https://www.cnblogs.com/greentomlee/p/9379499.html

你可能感兴趣的文章
团队项目冲刺第一阶段03
查看>>
Python之模块与包(下)
查看>>
sql server2005索引
查看>>
O-C相关-08-动态类型与静态类型
查看>>
06-CABasicAnimation基础核心动画
查看>>
mysql分库分表
查看>>
如何获取枚举字符串,值及遍历枚举(转)
查看>>
class-dump获取iOS私有api
查看>>
java实例练习——基于TCP/IP协议的多客户端通信
查看>>
图片加到json中,提交到服务器端处理异常问题。
查看>>
[Poi2011]Tree Rotations线段树合并
查看>>
Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
查看>>
Timer更新UI的合理办法
查看>>
jquery中对动态生成的标签响应click事件(二)…与ajax交互使用
查看>>
推荐几个.NET开源图表组件 [转]
查看>>
脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。...
查看>>
用JQUERY为INPUT的TXT类型赋值及取值操作
查看>>
(视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...
查看>>
(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性
查看>>
Python学习笔记——基础篇【第六周】——hashlib模块
查看>>