python图像处理-cv初学

cv初学

一.图像的读取

img=cv.imread("pic/lena.png");      # 给出读取文件的路径
cv.imwrite("test/lena1.png",img);   # 将刚才读取的文件保存在指定文件下

二.图像的显示

1.利用CV显示
cv.imshow("lena",img);
cv.waitKey(0);           # 让弹框一直显示
cv.destroyAllWindows();  # 弹框不用显示时叉掉即可
2.利用matplotlib.pyplot显示
plt.imshow(img);  # 直接这样读取出来的图片颜色丑到爆,通道需要转换
plt.show();
3.改进pyplot显示
# RGB BGR
img2=cv.cvtColor(img, cv.COLOR_BGR2RGB);
plt.imshow(img2);  
plt.show();

# 显示灰度图像时第一种没有任何问题,第三种需要修改一下,否则是热度图
img3=cv.imread("pic/lena.png",0); # 在后面加一个0表示直接读取为灰度图
#plt.imshow(img3); # 这样直接显示的是热度图
plt.imshow(img3,cmap="gray");
plt.show();

不经转换直接显示的灰度图(热度图)如下:
在这里插入图片描述

4.图像显示综合
# 函数显示图像
# 彩色图像的维度是3,灰度图像的维度是2
def show(img):
    if img.ndim == 2:
        plt.imshow(img, cmap="gray");
    elif img.ndim ==3:
        plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB));
    plt.show();

lena=cv.imread("pic/lena.png",0);
show(img);
show(lena);

三.绘制简单图形

1.简单
x=np.arange(2,20);
y=2*x+np.random.randint(5,20,18);
#plt.plot(x, y);
plt.plot(x,y,"*-",color="r");   # 整的花哨一点,节点是“*”,颜色red

在这里插入图片描述

2.稍微复杂一些
x1=np.linspace(0, 1, 100);  # 0-1分成100份
y1=x1;
y2=np.power(x1,2);
y3=np.power(x1,0.5);
plt.plot(x1,y1,label="x1-y1");
plt.plot(x1,y2,label="x1-y2");
plt.plot(x1,y3,label="x1-y3");
plt.legend();     # 让label起到效果
plt.grid();       # 加网格线
plt.xlabel('r');  # 给横轴起一个名字
plt.ylabel('s');  # 给竖轴起一个名字
plt.xlim([0,1]);  # 让所绘制的图像x轴从0开始到1结束
plt.ylim([0,1]);  # 让所绘制的图像y轴从0开始到1结束
plt.show();

效果:
在这里插入图片描述

如果没有plt.xlim([0,1])和plt.ylim([0,1])起始点太丑了:

此图中现实的内容没有加网格线

3.直方图绘制
a=np.random.randint(0,101,1000);
#plt.hist(a); # 丑,见图1,无间隔
plt.hist(a,rwidth=0.9,color="b"); # 设置间隔、颜色,见图2
plt.show();

图1:
在这里插入图片描述

图2:

在这里插入图片描述

统计一个大概数字

bins=np.arange(-0.5,101,1);# 从-0.5开始,是为了让0第一个落进去,100最后一个落进去
plt.hist(a,bins);
plt.show();

统计一个大概数字

bins=np.arange(-0.5,101,1);# 从-0.5开始,是为了让0第一个落进去,100最后一个落进去
plt.hist(a,bins);
plt.show();

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值