机器学习第3章第4节 : 随机像素点的绘制
来源:互联网 发布:恒腾网络 百度百科 编辑:程序博客网 时间:2024/06/05 20:07
机器学习第3章第4节 : 随机像素点的绘制
准备
本次教程是使用到了OpenCV的库,如果没有安装请先根据安装教程安装.
注意事项
OpenCV库中,颜色 不是 RGB ,而是 BGR ,也就是说,一个像素点由[蓝色值,绿色值,红色值]组成.
比如 : 我想读取A图像(假设A的图像矩阵变量为img_a)第150行第20列处的像素值,可使用代码 :
img_a[150,20,:]
又如 : 我想读取详细的颜色值,代码如下:
blue = img_a[150,20,0]
green = img_a[150,20,1]
red = img_a[150,20,2]
思路
随机生成像素的原理是首先产生空矩阵,然后确定矩阵的5000个随机位置,最后将随机位置处的像素值设置为随机数组.
如果我想要显示图像,其原理是 : 首先使用imread(文件名)读取图像文件,生成图像矩阵,然后调用imshow()显示图像,然后调用waitKey()等待按键,最后调用destroyAllWindows()销毁所有窗口,释放内存.
算法
import numpy as npimport cv2if __name__ == '__main__': #行数 sz1 = 200 #列数 sz2 = 300 print('产生的空图像矩阵为(%s,%s)' % (sz1,sz2)) img = np.zeros((sz1,sz2,3),np.uint8) pos1 = np.random.randint(200,size = (5000,1)) #行位置随机数组 pos2 = np.random.randint(300,size = (5000,1)) #列位置随机数组 #在随机位置设置像素点值 for i in range(5000): img[pos1[i],pos2[i],[0]] = np.random.randint(0,255) img[pos1[i],pos2[i],[1]] = np.random.randint(0,255) img[pos1[i],pos2[i],[2]] = np.random.randint(0,255) #显示图像 cv2.imshow('preview...',img) #等待按键 cv2.waitKey() #销毁窗口 cv2.destroyAllWindows()
结果
笔记
if __name__ == '__main__'
这段代码的含义是 : 如果这段代码是主程序而不是被加载(如import),那么就运行下面的代码.
img = np.zeros((sz1,sz2,3),np.uint8)
这段代码的含义是使用numpy的库,调用zeros函数产生大小为[(sz1,sz2,3),np.uint8]的矩阵,里面都是用0来填充的.如果代码是
np.zeros((3,4,5),np.uint8)
,那么产生的类型是<class 'numpy.ndarray'>
,里面的内容如下图
pos1 = np.random.randint(200,size = (5000,1)) #行位置随机数组
这段代码产生的类型是<class 'numpy.ndarray'>
,长度为5000,结果如下(请注意!数字是随机的):
- 机器学习第3章第4节 : 随机像素点的绘制
- 机器学习第3章第2节 : 绘制正余弦图像
- 机器学习第3章第9节 : 绘制声音波形图
- 机器学习第3章第10节 : 改变声音音量并绘制图谱
- 像素点的绘制
- 第4节--机器学习的基本概念
- 机器学习第5章第3节 : LMS的学习率退火算法
- 机器学习第3章第3节 : OpenCV 的下载与安装
- 机器学习第5章第4节 : 基于梯度下降的线性分类器
- 机器学习第3章第1节 : Anaconda3的安装和汉化
- 机器学习第3章第6节 : 图像的日落效果
- 机器学习第3章第7节 : 图片的平铺效果
- 2016机器学习大盘点(第3篇)
- 机器学习第4章第3节 : R语言计算实例
- 机器学习第5章第1节(上) : 使用神经网络学习逻辑或的运算
- 机器学习第5章第2节 : LMS算法
- 周志华《机器学习》第 4 章 决策树
- 机器学习实战第3章决策树
- Oracle系统表处理
- Java数据结构详解(九)-Deque
- SparkStreaming的实时单词统计小例子
- SpringMVC接受JSON参数详解及常见错误总结
- Java多线程
- 机器学习第3章第4节 : 随机像素点的绘制
- WINAPI--CopyFile()函数
- 博弈论小结
- 渗透测试 | 无线渗透 | 3-帧类型
- 关于jsp和servlet常见面试题
- MyEclipse 2015优化技巧
- springMVC中使用注解@ResponseBody,@RequestBody传递json数据
- 大话设计模式之中介者模式
- MongoDB全量迁移断点续传功能学习与实现