python OpenCV 读取图片显示和复制 (二)

读取和显示图像

#读取和显示图像
def showimg(imagePath):
    img = cv2.imread(imagePath)  #读取本地图片,目前OpevCV支持bmp、jpg、png、tiff
    cv2.namedWindow("Image")     #创建一个窗口用来显示图片
    cv2.imshow("Image", img)     #显示图片
    cv2.waitKey (0)              #等待输入,这里主要让图片持续显示。
    cv2.destroyAllWindows()      #释放窗口

if __name__ == '__main__': 
    imagePath = 'mini.jpg'
    showimg(imagePath) 

创建图像

新的OpenCV 中没有CreateImage 接口,即没有cv2.CreateImage 这个函数。如果要创建图像,需要使用Numpy的函数。

所以图像使用Numpy数组的属性来表示图像的尺寸和通道信息。如果输出img.shape 得到(500,375,3),3 -- 表示这是个RGB图像。

emptyImage = np.zeros(img.shape,np.uint8)  #根据图像的大小来创建一个图像对象

复制图像

emptyImage2 = img.copy()


还可以用cvtColor 获得原图像的副本
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
#emptyImage3[...]=0  
emptyImage3[...]=0是将其转成空白的黑色图像。

保存图像

cv2.imwrite("D:\test.jpg",img)

第一个参数是保存文件名和路径,第二个是图像矩阵。imwrite() 有个可选的第三个参数
cv2.imwrite("D:\test.jpg",img,[int(cv2.IMWRITE_JPEG_QUALITY),5])
5 -- 是第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95
      注意: cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int.,对于png ,第三个参数表示的是压缩级别。
      cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。默认为3.

cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])   
cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]) 


测试完整代码

import cv2  
import numpy as np  
  
img = cv2.imread("./cat.jpg")  
emptyImage = np.zeros(img.shape, np.uint8)  
  
emptyImage2 = img.copy()  
  
emptyImage3=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
#emptyImage3[...]=0  
  
cv2.imshow("EmptyImage", emptyImage)  
cv2.imshow("Image", img)  
cv2.imshow("EmptyImage2", emptyImage2)  
cv2.imshow("EmptyImage3", emptyImage3)  
cv2.imwrite("./cat2.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 5])  
cv2.imwrite("./cat3.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])  
cv2.imwrite("./cat.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])  
cv2.imwrite("./cat2.png", img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])  
cv2.waitKey (0)  
cv2.destroyAllWindows()

参考和转载地址:
http://blog.csdn.net/sunny2038/article/details/9057415




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值