python图像处理学习

python图像处理
学习第一天打卡
一 图像基础知识
图像都是由像素构成的,像素呢是图像的最小单位,形象的解释想象有一个点阵图,这个点阵图中有许多的小方格,每个小方格都有确切的位置和被分配的色彩,这个小方格就是像素,我们平时说的像素的大小就是小方格的数量,一张美女图片中小方格越多就是像素越高,图片也就越清晰,图片放大之后的模糊度就会降低。
在这里插入图片描述
二值图像 灰度图像 彩色图像
1 二值图像
二值图像中的二值就是两个色彩数值像素255和0(255就代表白色,0代表黑色),我们所看到的二值图片就是一张黑白图。一般将一张灰度图转化为二值图片就是将他的灰度值和127相比较,大于等于127就是白色,反之即为黑色。
在这里插入图片描述
2 灰度图像
灰度图像就是很直观的灰色图片,他看上去比二值图片更加的真实好看。灰度图片将灰色分成256分,由此就有256个不同的灰色,每个不同的灰色都按照规律对应不同的灰度值。
将彩色图片转化为灰度图片的方法有以下几种:
(1) 浮点算法:Gray=R0.3+G0.59+B0.11
小数计算我好困其实,就是比如这种RGB(30,59,11)把他的数值进行运算,得出来的值呢就和灰度值进行匹配
(2) 整数方法:Gray=(R30+G59+B11)/100
整数和小数不一样的地方呢就是他们的名字,反正按照公式这么算下去结果都是一样的嘛,就像是0.3和3/10一样,就是同一道题目的不同的运算方式;
(3) 移位方法:Gray=(R28+G151+B77)>>8;
这个感觉就是像进制移动吧,二进制啊,八进制啊之类的,然后循环位移一下就得出结果;
(4) 平均值法:Gray=(R+G+B)/3;(此程序采用算法)
这个就是那个就目前公式来看的话就是一个求平均数的方法吧,多的目前我也看不出来,留个问题,眼hhhhhhhhhhhhhhhhhh
(5) 仅取绿色:Gray=G;
这个(⊙o⊙)…啥意思?不太懂留个绿色就是直接把绿色的色素值和灰度值对等了吗,好像是的,仿佛打开了新的大门哈哈哈哈;
(6) 加权平均值算法:根据光的亮度特性,公式: R=G=B=R0.299+G0.587+B0.144
这个我真看不懂!!!!!!!!!*
彩色图像
这个就很直观地彩图啦,就是用RGB来表示(red,green,blue)计算机中所有的颜色都是由RGB三原色按照不同比例进行组合形成的;

在这里插入图片描述
二 OpenCV读写图像
首先安装python3.6和opencv,打开cmd用pip install opencv-python命令安装

pip install opencv-python

函数介绍:
1 opencv读入图像主要用下面函数实现
img=cv2.imread(文件名,参数)
参数(1)cv2.IMREAD_UNCHANGED(图像不可变)
参数(2)cv2.IMREAD_GRAYSCALE(灰度图像)
参数(3)cv2.IMREAD_COLOR(读入彩色图像)
参数(4)cv2.COLOR_RGB2RGB(图像通道RGB转成RGB)

2 显示图像调用函数
cv2.imshow(窗口名,图像名)

3 窗口等待调用函数
cv2.waitKey(delay)
键盘绑定函数就一个参数,表示等待的毫秒数,看是否有键盘的输入,返回值为ASCII值。如果delay为0,表示无限期等待键盘输入,就是什么时候输入都可以;如果delay>0,表示等待delay毫秒;如果delay<0,表示等待键盘单击。

4 删除窗口函数
cv2.destroyAllWindows()删除所有窗口
cv2.destroyWindows()删除指定窗口

5 写入图片函数
retval=cv2.imwrite(文件地址,文件名)

小试牛刀

import cv2
#读取图片
img=cv2.imread("1.jpg")
#显示图片
cv2.imshow("demo",img)
#等待显示
cv2.imwaitKey(0)
cv2.destroyAllWindows()
#写入图片
cv2.imwrite("01.jpg",img)

图片结果我懒得截图了,下方有大神链接可以自己去看;
代码升级

#无限期等待输入
k=cv2.waitKey(0)
#如果输入ESC则退出
if k==27:
    cv2.destroyAllWindoes()

三 OpenCV像素处理
1 读取像素
灰度图像返回灰度值;RGB图像返回B\G\R三个通道变量
灰度图像:返回值=图像(位置参数)
eg:test=img[125,36]
彩色图像:返回值=[位置元素,0|1|2获取BGR三个通道像素]
eg:blue=img[125,36,0],green=img[125,36,1],red=[125,36,2]

2 修改图像
灰度图像直接赋予新的像素,彩色图像就分别赋予他们像素
灰度图像:img[125,36]=255
彩色图像:img[125,36,0]=255
img[125,36,1]=255
img[125,36,2]=255
彩色图像也可以img[125,36]=[255,255,255]
测试代码:

import cv2
#读取图片
img=cv2.imread("zhan.jpeg")
#显示图片
#cv2.imshow("zhan",img)
#测试点选取
test=img[188,188]
print(test)
img[188,188]=[255,255,255]
print(test)
#分别获取BGR通道颜色
blue=img[188,188,0]
print(blue)
green=img[188,188,1]
print(green)
red=img[188,188,2]
print(red)
#显示图像
cv2.imshow("zhanzhan.ipeg",img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图片
cv2.imwrite("qiumi.jpg".img)

测试结果:
在这里插入图片描述
让我们更加直观的感受一下把图片某个区域设置为同一个颜色

import cv2
#读取图片
img=cv2.imread("zhan.jpeg")

#设置图片区域白色
img[188:250,188:250]=[255,255,255]
#显示图像
cv2.imshow("zhanzhan.ipeg",img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图片
cv2.imwrite("qiumi.jpg".img)

在这里插入图片描述
机智的我目前学习了大神的第一课哈哈哈哈;

原文链接:https://blog.csdn.net/Eastmount/article/details/81748802

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值