专业做淘宝网站公司哪家好,wordpress get page,ps为什么做不了视频网站,wordpress地址和找点地址目录 读取图片和显示图片
显示图片的大小
将图像设置为灰度图
将图片重新写回指定的地址
显示图片的尺寸
获取图片的类型 读取图片和显示图片
在OpenCV使用cv2.imread()来读取图片#xff0c;例如#xff0c;在D盘的Photo的文件夹中有一张图片名称为1的jpeg的图片例如在D盘的Photo的文件夹中有一张图片名称为1的jpeg的图片图片为演示所用如有侵权可删除 可以看到这是一张动物图片下面使用OpenCV对于这张图进行读取
import cv2
import matplotlib.pyplot as plt
import numpy as np
#import表示导入包imgcv2.imread(rD:\Photo\1.jpeg) #读取D盘中Photo中的为1的jpeg图片
在上面imread()函数中在决定路径加一个r是为了解决转义的问题。
在上面的代码中读取的是决定地址如果用户需要读取相对地址可以不需要写所在问的文件夹例如
imgcv2.imread(rtest.jpg)
这是读取程序所在文件夹中名叫test的jpg图片。
我们可以直接输出img输出
img
输出结果为下图内容
、
那么如何将结果以图像的形式给表示出来呢下面就以为下面的代码形式来输出结果
cv2.imshow(image,img)
cv2.waitKey(0)
cv2.destroyAllWindows() 注函数解释——waitKey() 上面函数中OpenCV中waitKey()函数的作用是等待用户按下键盘上的某个键然后返回该键的ASCII码。如果用户没有按下任何键那么函数将一直等待直到用户按下一个键为止。如果是waitKey(0)的话表示程序会进入无限循环直到用户按下任意键为止。 而如果是waitKey1000的话表示用户在10秒之后如果用户没用按下任意键那么该窗口会自动消失。其中waitKey()函数里的数值是以毫秒为量级的waitKey(1000)表示等待10秒waitKey(10000)表示等待100秒。 输出的结果如下所示 代码执行之后会单独弹出一个窗口来加载图片在写代码的时候需要注意的是之后是在浏览器背后弹出的
同时也可以单独写一个函数来显示图片的内容当我们再写一些较大的程序的时候可以直接调用。函数为
def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()
显示图片的大小
在OpenCV中使用img.shape可以获得图片的行数、列数和通道数。
img.shape
运行结果如下所示
(500, 500, 3) 注OpenCV中shape属性可以返回一个元组其中分别是行数、列数和组数其中如果是一个彩色图像的话那么会有三个通道红、绿、蓝如果是一个灰色图像的话那么只有一个通道。 将图像设置为灰度图
在OpenCV中将彩色图片转换为灰色图片只需要在cv2.imread()中第二个参数设置为cv2.IMREAD_GRAYSCALE即可例如
import cv2
import matplotlib.pyplot as plt
import numpy as npimgcv2.imread(rD:\Photo\1.jpeg,cv2.IMREAD_GRAYSCALE)
cv2.imshow(image_gray,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#本程序是读取Photo中图片1并且将图片由彩色转换为灰色
运行结果如下所示 另外一种将彩色图片转换为 灰色图片的方式还有将cv2.imread()第二个参数设置为0运行结果相同即
imgcv2.imread(rD:\Photo\1.jpeg,cv2.IMREAD_GRAYSCALE)
将图片重新写回指定的地址
在OpenCV中使用cv2.imwrite()将图片重新写回指定地址中例如将上面的所得到的灰色重新写回文件夹
cv2.imwrite(rD:\Photo\2.png,img)
同读取图片相同当要写入图片到绝对位置的时候同样需要对决定位置前加上r。当执行后运行结果在Notebook上显示为True。再到文件夹中可以看到 可以看到灰色图片成功写入文件夹中。
显示图片的尺寸
在OpenCV中通常用size属性来表示图像的尺寸例如将上述的图片查看图片的尺寸
import cv2
import matplotlib.pyplot as plt
import numpy as npimg1cv2.imread(rD:\Photo\1.jpeg)
img2cv2.imread(rD:\Photo\1.jpeg,cv2.IMREAD_GRAYSCALE)
img3cv2.imread(rD:\Photo\2.png)
print(img1.size)
print(img2.size)
print(img3.size)
#注在实际的文件夹中1.jpeg是彩色图片而2.png是黑白图片
运行结果如下所示
750000
250000
750000
通过上面的运行结果可以看到由于该图片的行数和列数均为500得到750000的原因显然是500*500*3750000得到250000显然是500*500*1250000。因此在读取图片时若没有将图片转换为灰色图片即设置cv2.IMREAD_GRAYSCALE那么尺寸大小为行数*列数*3即使图片本身是灰色图片没有设置通道数也为3若读取图片将图片转换为灰色图片则通道数为1。
获取图片的类型
在OpenCV中通过type函数可以获取图片的类型例如获取上述代码中img的类型
type(img)
返回的结果为numpy.ndarray而numpy.ndarray表示的是一个多维数字在OpenCV中图像多用numpy.ndarray来表示便于对图像进行操作。