当前位置:主页 > 业界动态 > WEB3.0 > 当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

2022-07-12 04:18:39来源:互联网

文章导读
作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编来和大家分享一下 Python 在图像处理当中的具体应用,那既然是图像处理,那必然要提到 opencv 模块了,该模块支持与计算机视觉和机器学习 ...

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

作者 | 俊欣来源 |关于数据分析与可视化今天小编来和大家分享一下Python在图像处理当中的具体应用,那既然是图像处理,那必然要提到opencv模块了,该模块支持与计算机视觉和机器学习相关的众多算法,并且应用领域正在日益扩展,大致有以下几种领域

物体识别:通过视觉以及内部存储来进行物体的判断

图像分割

人脸识别

汽车安全驾驶

人机交互

等等

当然这次小编并不打算将这么高深的内容,今天就从最基本的opencv模块在图像的基本操作上说起

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

模块的安装


模块的安装我们通过都是通过pip命令来进行的

pipinstallopencv-python
pipinstallopencv-contrib-python


当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

图片的各种操作


学过线性代数的肯定怼矩阵并不感到陌生。图像本质上来说就是矩阵,灰度图像是一个普通的矩阵,而彩色图像就是一个多维矩阵,我们对于图像的操作可以自然地转换成是对矩阵的操作读取图像

首先我们先来读取图像,调用的是cv2.imread()方法,它的语法格式如下:

cv2.imread(filename,flag=1)

其中的flag参数是用来设置读取图像的格式,默认的是1,表示为按照RGB三通道的格式来进行读取,如果设置成0,则表示以灰度图单通道的方式来进行读取,

importcv2
importnumpyasnp
img=cv2.imread('1.jpg',0)

展示图像 在读取图片之后,我们希望能够将其展示出来,这里用到的函数方法是cv2.imshow(),它的语法格式如下所示cv2.imshow(name,img)

其参数解释分别如下:

name: 表示的是展示窗口的名字

img: 图片的矩阵形式

我们尝试将上面读取的图片展示出来,代码如下

cv2.imshow("grey_img",img)
##如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数
cv2.destroyAllWindows()

当我们运行了上述的代码之后,可以发现在一瞬间当中图片弹了出来,但是还没有等我们看清楚图片的样子之后就直接关闭了,原因在于cv2.imshow()函数方法并没有延时的作用,我们添加一个延时的函数,代码如下:

importcv2
importnumpyasnp

img=cv2.imread('1.jpg')
cv2.imshow("grey_img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

图片保存

最后我们将图片保存下来,这里用到的函数是cv2.imwrite(),它的语法格式如下

cv2.imwrite(imgname,img)

其参数解释分别如下:

imgname: 要保存的图片的名字

img: 图片的矩阵形式

示例代码如下

importcv2
importnumpyasnp

img=cv2.imread('1.jpg')
cv2.imshow("grey_img",img)
cv2.waitKey(0)
cv2.imwrite('1.png',img)
cv2.destroyAllWindows()


当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

图片的各种属性


有时候我们想要知道图片的像素大小,而图片的本质是矩阵,例如一张1024像素*960像素的图片,就意味着在矩阵当中的行数就是960行,列数是1024列,在opencv模块当中调用的shape()函数方法,代码如下:

importcv2

img=cv2.imread('1.jpg')print(img.shape[0])#行数
print(img.shape[1])#列数
print(img.shape[2])#通道数

output

308
340
3

可以看到该图片的像素是340*380,通道数是3,而针对灰度图像而言,我们来看一下图片的属性,代码如下:

img=cv2.imread('1_grey.png',0)
print(img.shape)

output

(308,340)

可以看到对于灰度图像而言,我们就没有看到通道数,只有行数和列数


当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

图像的基本操作


最后我们来对图像进行一些基本操作,无非就是改变当中的一些像素值,我们导入一张空白的图片,通过修改当中的像素值来往里面添加一个黑点,代码如下

importcv2
importnumpyasnp

img=cv2.imread('2.jpg')
(x,y,z)=img.shape

foriinrange(-10,10):
forjinrange(-10,10):
#图片的正中心的位置来改变像素值,
img[int(x/2)+i,int(y/2)+j]=(0,0,0)

cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!


往期回顾





当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

分享

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

点收藏

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

点点赞

当 Python 也来进行修图神器,发现是真的蛮好用的呢!!

热门文章
日榜 周榜
1 3月6日投资晚报|证监会:鼓励上市公司一年多次分红,上海电力

周三(2024年3月6日),A股市场早盘低开,午后开始反弹。上证指数涨上证指数跌0.26%,报3039...

2 金股挖掘| 绑定大众集团实现业务腾飞,电车时代来临,这家车

2023年我国汽车产业发展取得突破性进展,全年产销均超3000万辆,创历史新高,汽车出口首次跃...

3 调研早知道| 自有品牌战略进入全面收获期,这家企业海外市场

界面新闻记者 | 袁颖琪 跟随着我国白电“走出去”的步伐,有一家企业的优势正日益凸显。这...

4 盘中必读|今日共105股涨停,三大指数小幅下跌,新质生产力概念

3月6日,大盘午后震荡回落,三大指数均小幅下跌。截至收盘,沪指跌0.26%,深成指跌0.22%,创...

5 重大事项停牌前一度大涨17%,“量子通信第一股”国盾量子发生

界面新闻记者 | 冯雨晨 一番大涨之后,国盾量子(688027 .SH )宣布筹划重大事项停牌,引起市...

1 3月6日投资晚报|证监会:鼓励上市公司一年多次分红,上海电力

周三(2024年3月6日),A股市场早盘低开,午后开始反弹。上证指数涨上证指数跌0.26%,报3039...

2 金股挖掘| 绑定大众集团实现业务腾飞,电车时代来临,这家车

2023年我国汽车产业发展取得突破性进展,全年产销均超3000万辆,创历史新高,汽车出口首次跃...

3 调研早知道| 自有品牌战略进入全面收获期,这家企业海外市场

界面新闻记者 | 袁颖琪 跟随着我国白电“走出去”的步伐,有一家企业的优势正日益凸显。这...

4 盘中必读|今日共105股涨停,三大指数小幅下跌,新质生产力概念

3月6日,大盘午后震荡回落,三大指数均小幅下跌。截至收盘,沪指跌0.26%,深成指跌0.22%,创...

5 重大事项停牌前一度大涨17%,“量子通信第一股”国盾量子发生

界面新闻记者 | 冯雨晨 一番大涨之后,国盾量子(688027 .SH )宣布筹划重大事项停牌,引起市...

撤稿申请|

备案号:鄂ICP备2022006215号 Copyright © 2002-2022 metaversezj.com.cn 元宇宙之家 版权所有