栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2022年7月25日开始学习Jupyter Notebook

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022年7月25日开始学习Jupyter Notebook

今天是2022年7月25日,开始学习Jupyter Notebook。

最近看了一篇论文,采用改进YoloV4模型检测复杂环境下马铃薯_张兆国。论文里的方法是在的复杂环境下检测马铃薯,处理照片所用的软件为openCV,以下是我的大致安排。

时间:四天(7.25-7.29)

学习任务:简单了opencv,学会用软件简单处理照片。

学习网站:极棒的数字图像处理入门到进阶教程:Python OpenCV实战数图_哔哩哔哩_bilibili

学习资料:G:opencv

接下来我将会记录在所学过程中所遇到的困难和学习心得

1、程序包含两个cell,当我直接运行第二个cell,显示报错,报错内容是“某某未定义”,但是我已经定义了,我百思不得其解。

答:

标题

 注意前面的中括号,试运行的顺序,将上面导入模块的代码运行后,再运行下方代码,就不会报错(我是在不经意之间发现,附上此时我内心os:被自己蠢哭了)

2、

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv

以上是导入三个模块,切记一定要执行上述程序。

##读取照片,

照片存入电脑是以矩阵(数字)的形式存入照片,RGB分别是以red green blue颜色,各个有8位,每位整数值分别介于0-255之间,共有256位。

2.1以矩阵形式输出

img = cv.imread("pivwenjianming.jpg")
print(img)

以上代码读写运行时,结果为数组,这也是读取图片的一种形式。

2.2以对话框的形式输出(img是命名的图片)

cv.imshow("bear",img)
cv.waitKey(0)
cv.destroyAllWindows()

输出时为弹出窗口,进行图片的输出。

imshow(winname, mat)    winname窗口名称,mat图像显示

上面代码可以表示为,一个窗口叫做bear显示了img图像。

2.3在程序下方输出照片

plt.imshow(img)
plt.show()

 以上的程序运行后,直接在程序下面输出照片,但是输出照片跟真实照片的有区别(斯~,欣赏不了)。

2.3(1)

注:plt.imshow输出照片的格式是BGR(不确定解释的对不对,是按照字母顺序排列的)

我们需要将BGR改成RGB格式。代码如下:

img2 = cv.cvtColor(img,cv.COLOR_BGR2RGB)
plt.imshow(img2)
plt.show() 
2.3(2)

 2.4将定义一个show()的函数。主要功能为:当图片的数组维数为2时输出照片,当数组维数大于2时,将照片先转化为RGB格式然后再输出。

def show(img):
    if img.ndim == 2:
        plt.imshow(img,cmap="gray")
    eles:
        plt.imshow(cv.cvtColor(img,cv.COLOR_BGR2RGB))
    plt.show

注:这里有一个重要的知识点,就是plt.imshow函数,我在整理笔记时,忘记了后面 plt.imshow(img,cmap="gray")中,cmap="gray"是什么意思。

我先将我查阅的资料连接放这:

(98条消息) imshow中的 cmap=plt.cm.gray_r 是调整颜色,附颜色大全_云霄IT的博客-CSDN博客_plt.cm.gray

首先说cmap="gray" ,黑白的意思,

cmap=plt.cm.gray_r,      # cmap参数: 为调整显示颜色 gray为黑白色,加_r取反为白黑色

 3 设置表格

x = np.arange(2,25)
y = np.random.randint(5,20,23)

x,是从2开始到24一共有23个数字。

y,随机产生23个数,范围在5-20之间。

生成的表格如下:

 3.1生成复杂的图标

x = np.linspace(0,1,100)  #解释在0-1之间分成100份
y1 = np.power(x,0.5)       #x的0.5次方
y2 = x                              #x的一次方
y3 = np.power(x,1.5)       #x的1.5次方

plt.plot(x,y1,label="0.5")
plt.plot(x,y2,label="1")
plt.plot(x,y3,label="1.5")
plt.legend()

显示如下:

 继续给横坐标和纵坐标标号:

代码如下:

plt.xlabel("r")
plt.ylabel("s")

 plt.grid()  #加上网格

 上面的起始点不为0和1,我们将其起始点设置为0到1。

plt.xlim([0,1])
plt.ylim([0,1])

 一张稍微复杂的图片就完成了。

3.2生成柱状图,hist函数

a = np.random.randint(1,101,1000) #a是从1到101之间(不包括101)随机生成1000个数。

plt.hist(a,rwidth=0.5,color = "g")  # 统计一下各个数的占比,生成柱状图,宽度是50%,颜色是绿    plt.show()                                    
 

 第一章学习结束,完美的ending。今天略微有点小困。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号