(相关资料图)
目录
NumPy Python数值计算重要库读取和显示图像图像的大小调整图像的翻转图像缩放和裁剪颜色通道处理图像滤波NumPy Python数值计算重要库
在图像处理领域,NumPy可以帮助我们高效地对图像进行处理。通过使用NumPy中的数组操作,我们可以快速地完成各种基本的图像处理任务,例如图像的裁剪、缩放、翻转、色彩模式转换等
读取和显示图像
首先,在处理图像之前,我们需要将图像加载到Python程序中。在Python中,可以使用PIL(Python Imaging Library)或OpenCV等库来读取图像。下面是使用PIL库读取一张图片并在窗口中显示的示例代码:
from PIL import Image import numpy as np import matplotlib.pyplot as plt # 读入图片 img = Image.open("test.jpg") # 显示图片 plt.imshow(np.asarray(img)) plt.show()
图像的大小调整
接下来,我们看一下如何通过NumPy来调整图像的大小。有时候,我们需要将一个大尺寸的图像缩放成小尺寸的图像。在这里,我们将使用ndarray对象的resize()方法以及scipy.interpolate中的interpolate()方法实现图像的缩放。
from scipy import interpolate # 将图像放大两倍 scale_factor = 2 image_arr = np.array(img) width, height = image_arr.shape[:2] new_width, new_height = int(scale_factor * width), int(scale_factor * height) # 采用scipy.interpolate的interpolate()方法实现缩放 a, b = np.linspace(0, width, width), np.linspace(0, height, height) x, y = np.meshgrid(a,b) f = interpolate.interp2d(x, y, image_arr, kind="cubic") new_x, new_y = np.linspace(0, width, new_width), np.linspace(0, height, new_height) new_image_arr = f(new_x, new_y) # 重新转为图像格式,显示出来观察。 new_image = Image.fromarray(np.uint8(new_image_arr)) plt.imshow(np.asarray(new_image)) plt.show()
图像的翻转
在有些场景下,我们需要将图像水平或垂直翻转。NumPy中提供了flip()方法来实现图像的翻转操作。
# 将图像水平翻转 img_flip_horizontal = np.fliplr(image_arr) # 将图像垂直翻转 img_flip_vertical = np.flipud(image_arr)
图像缩放和裁剪
调整图像大小是常见的图像处理任务,除此之外,您还可能需要对图像进行裁剪或者缩放的同时进行裁剪。在这里,我们使用与之前一样的方法,即resize()实现图像缩放,并且结合crop()方法对图片进行裁剪。
# 图像缩放并裁剪 scale_factor = 2 crop_area = (50, 100, 250, 350) image_arr = np.array(img) width, height = image_arr.shape[1], image_arr.shape[0] new_width, new_height = int(scale_factor * width), int(scale_factor * height) new_image_arr = np.asarray(Image.fromarray(image_arr).resize((new_width, new_height))) # 裁剪图像 left, upper, right, lower = crop_area cropped_image_arr = new_image_arr[upper:lower, left:right] # 显示处理过的图片 plt.imshow(np.asarray(Image.fromarray(cropped_image_arr)))
颜色通道处理
在一些情况下,我们需要进行图像颜色通道处理。例如,我们可能需要将图像转换为灰度图像或对三个颜色通道分别进行操作,这可以用于实现许多视觉处理等算法中。
# 灰度化 gray_image_arr = np.dot(image_arr, [0.2989, 0.5870, 0.1140]) gray_image = Image.fromarray(np.uint8(gray_image_arr)) plt.imshow(np.asarray(gray_image)) # 颜色通道处理 red_channel_arr = np.zeros_like(image_arr) red_channel_arr[:, :, 0] = image_arr[:, :, 0] red_channel_image = Image.fromarray(np.uint8(red_channel_arr)) plt.imshow(np.asarray(red_channel_image)) green_channel_arr = np.zeros_like(image_arr) green_channel_arr[:, :, 1] = image_arr[:, :, 1] green_channel_image = Image.fromarray(np.uint8(green_channel_arr)) plt.imshow(np.asarray(green_channel_image)) blue_channel_arr = np.zeros_like(image_arr) blue_channel_arr[:, :, 2] = image_arr[:, :, 2] blue_channel_image = Image.fromarray(np.uint8(blue_channel_arr)) plt.imshow(np.asarray(blue_channel_image))
图像滤波
图像滤波是另一个有用的图像处理任务。NumPy中提供了多种图像滤波的方法,其中之一是卷积操作。下面的代码演示如何使用3x3卷积核进行图像平滑化。
# 图像平滑化 kernel = np.ones((3, 3), np.float32) / 9 smooth_image_arr = cv2.filter2D(image_arr, -1, kernel) # 显示滤波过后的图片 plt.imshow(smooth_image_arr)
以上就是educoder之Python数值计算库Numpy图像处理详解的详细内容,更多关于Python 数值计算库 Numpy的资料请关注脚本之家其它相关文章!
关键词:
(责任编辑:黄俊飞)推荐内容
- educoder之Python数值计算库Numpy图像处
- 天天最新:中国黄金投资金条价格今天多少
- 今日聚焦!深圳:支持本地龙头企业加大人
- 国家药监局:予以注销易瑞生物新冠抗原检
- 2022年中国机器人全行业营业收入超过1700
- 世界信息:腾讯音乐申请“文曲大模型”系
- 时讯:装修风格那么多,哪种风格最深的人
- 南京已建成超千个“宁小蜂驿站”
- 鹿西越野环岛挑战赛昨开启报名 选手最高
- 中国成品油价迎年内第四次上调
- 视频|夜市商铺用“鬼秤”?学校门口买东
- 女子孕吐严重靠闻臭鞋续命_丈夫心疼求救
- 当前通讯!电报解读|浙版传媒(601921.SH
- 环球即时:杭州石油为百名儿童送祝福
- 每日热门:交通安全宣传进校园 这些举措
- 多地发布2022年平均工资 这些行业“钱景
- 马普尔小姐探案第一季第三集 马普尔小姐
- 2023年全国电子制作教育竞赛在弥勒市举办
- 环球快看点丨参观宜禾职业装博览馆感受科
- 纽约金价30日上涨
- 生物制品板块5月30日跌0.83%,康为世纪领
- 每日消息!轰26+10创历史第一纪录!马丁被
- 26分惨败出局!辽篮新军被打成筛子 大韩
- 中国星辰|神舟十六号载人飞船成功发射
- 如何做麻辣小龙虾好吃又简单 ,6个步骤
- 梦见凤凰是什么意思(梦见凤凰是什么意思
- 罗平锌电是哪一年上市的?罗平锌电主要产
- 小产权房出租要签合同吗
- 山西的滑雪场哪个好_想去山西滑雪哪个滑
- 个人申请停息挂账会成功吗?停息挂账可以
- 环球最新:6分结束半程?大连人3场拿1分
- 足协杯第三轮对决,泰山队迎战东莞,大连
- 浙商证券:给予日上集团增持评级_全球最
- 市场监管总局发布2022年产品质量国家监督
- 泰山学院师资怎么样好不好的力量
- 上海电力: 上海电力股份有限公司关于与
- 手工灯笼制作方法步骤图解(手工灯笼制作
- 北京发布“六一”国际儿童节消费提示|全
- 全球微头条丨图说清远(49)| 清远9家供
- 瑞士联邦议会将讨论成立调查委员会 调查
- 环球今日讯!科尔沁民歌大全蒙语优酷视频
- 四川甘孜州雅江县麻郎措镇突发森林火灾|
- 实时焦点:拓尔思涨7.59%,开源证券一个
- 今日快讯:2023年山西省“英才计划”探索
- 国足世界排名最新排名(最新世界排名国足
- 七匹狼(002029)5月30日主力资金净卖出5
- 受台风“玛娃”影响 香港天文台发出“极
- 世界速递!李书福等在重庆成立合伙企业
- 天天新消息丨brilliance auto brilliance
- 热消息:打卡青州博物馆 这些国宝不容错过
- 张之臻创历史!中国大陆男单首进法网第二
- 最推理103期(对于最推理103期简单介绍)
- 白色的寓意和意义_白色的寓意 全球视点
- 朝鲜将于6月发射军事侦察卫星一号
- 素万乳胶枕是传销吗
- 粤x是广东哪里的车牌_粤x
- 苹果还在用480Hz屏 荣耀90首发3840Hz零
- 天天报道:得到同学节演讲 | 刘思侬:如
- 第29次中国—东盟高官磋商在深圳举行
- 重大水利工程加快推进 万亿投资扩内需惠
- 生物制品板块5月30日跌0.83%,康为世纪领
- 每日消息!轰26+10创历史第一纪录!马丁被
- 26分惨败出局!辽篮新军被打成筛子 大韩
- 中国星辰|神舟十六号载人飞船成功发射
- 如何做麻辣小龙虾好吃又简单 ,6个步骤
- 梦见凤凰是什么意思(梦见凤凰是什么意思
- 罗平锌电是哪一年上市的?罗平锌电主要产
- 小产权房出租要签合同吗
- 山西的滑雪场哪个好_想去山西滑雪哪个滑
- 个人申请停息挂账会成功吗?停息挂账可以
- 环球最新:6分结束半程?大连人3场拿1分
- 足协杯第三轮对决,泰山队迎战东莞,大连
- 浙商证券:给予日上集团增持评级_全球最
- 市场监管总局发布2022年产品质量国家监督
- 泰山学院师资怎么样好不好的力量
- 上海电力: 上海电力股份有限公司关于与
- 手工灯笼制作方法步骤图解(手工灯笼制作
- 北京发布“六一”国际儿童节消费提示|全
- 全球微头条丨图说清远(49)| 清远9家供
- 瑞士联邦议会将讨论成立调查委员会 调查
- 环球今日讯!科尔沁民歌大全蒙语优酷视频
- 四川甘孜州雅江县麻郎措镇突发森林火灾|
- 实时焦点:拓尔思涨7.59%,开源证券一个
- 今日快讯:2023年山西省“英才计划”探索
- 国足世界排名最新排名(最新世界排名国足
- 七匹狼(002029)5月30日主力资金净卖出5
- 受台风“玛娃”影响 香港天文台发出“极
- 世界速递!李书福等在重庆成立合伙企业
- 天天新消息丨brilliance auto brilliance
- 热消息:打卡青州博物馆 这些国宝不容错过
- 张之臻创历史!中国大陆男单首进法网第二
- 最推理103期(对于最推理103期简单介绍)
- 白色的寓意和意义_白色的寓意 全球视点
- 朝鲜将于6月发射军事侦察卫星一号
- 素万乳胶枕是传销吗
- 粤x是广东哪里的车牌_粤x
- 苹果还在用480Hz屏 荣耀90首发3840Hz零
- 天天报道:得到同学节演讲 | 刘思侬:如
- 第29次中国—东盟高官磋商在深圳举行
- 重大水利工程加快推进 万亿投资扩内需惠
- 速递!当高目标碰上低增速:2023会有更多
- 安徽省兴泰融资:更正2022年年度财务报表
- 焦点滚动:为何浏览器有些网页打不开 为
- 热门看点:甘薯是什么作物_甘薯是什么
- 环球报道:【渝友问答】在重庆,公积金贷
- 放大招!9600亿美元芯片龙头推出重磅AI新
- 经济学家樊纲谈当前经济热点:建议增发长
- 农行排查清理长期不动存折账户,存折用的
- 恒指跌超1%,电力涨幅居前,长城汽车跌约
- 全球今日讯!从骆岗到新桥 十年见证合肥
- 今日看点:电讯报:滕哈赫正在推动曼联签
- 专家解读丨美国债务危机难以得到根本解决
- 拜登、麦卡锡达成“妥协”,却导致两党内
- 地狱厨房莫甘娜多少钱能出_地狱厨房莫甘
- 女子怀孕四个月被老公多次家暴,妇联回应
- 5月29日山西中阳线材价格上涨_世界焦点
- 安全过“六一”!这些儿童节消费提示需注
- 每日视点!《月都的造物》第六集:红魔的
- 央行29日将开展50亿元票据互换(CBS)操作|
- 环球微速讯:华电国际(600027)5月29日1