美文网首页
python 3 +opencv 3.4(二)--图像基本语句

python 3 +opencv 3.4(二)--图像基本语句

作者: 五秋木 | 来源:发表于2018-03-27 23:56 被阅读0次
    1. 读入图像:image=cv2.imread('1.jpg'),得到的image为np的ndarray类型。cv2.imread(path, flags)
      flags:指定以何种方式加载图片,有三个取值:

      • cv2.IMREAD_COLOR:读取一副彩色图片,图片的透明度会被忽略,默认为该值,实际取值为1;
      • cv2.IMREAD_GRAYSCALE:以灰度模式读取一张图片,实际取值为0
      • cv2.IMREAD_UNCHANGED:加载一副彩色图像,透明度不会被忽略。
    2. 创建空图:img=np.zeros((100,100),dtype=np.uint8)

    3. 显示图像:cv2.imshow('Image',img) #指定显示该图片的窗口为“Image”

    4. 执行时显示python未响应,需要后面加一句cv2.waitKey(0),作用:等待键盘触发事件,释放窗口。

    5. 等待键盘输入并关闭所有窗口,这里cv2.waitKey里的参数0表示等待输入任何按键,当用户输入任何一个按键后即调用cv2.destroyAllWindows()关闭所有图像窗口。

      cv2.waitKey (1000)  
      cv2.destroyAllWindows() #表示图像显示1s后,自动关闭窗口。
      
    6. 灰度图像与彩色图像之间的相互转化
      灰度转化为彩色:img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
      img有二维矩阵变成三维矩阵。前两维表示位置,第三维通道。img[1,1,0],第一个值表示y或者行,第二个值表示x或者列。第三个表示通道。img[0,0]表示左上角的三通道[b,g,r]

    7. 图像的保存imwrite

    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])  
    

    对于JPEG,其表示的是图像的质量,用0-100的整数表示,默认为95。 注意,cv2.IMWRITE_JPEG_QUALITY类型为Long,必须转换成int。
    对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。默认级别为3。

    1. 图像复制: tempImage = im.copy()
    2. imshow显示的图像大小问题,不能显示完整的图像:
      解决办法:
      1. cv2.namedWindow("Image", 0) # 初始化一个名为Image的窗口或者
        cv2.namedWindow("Image", cv2.WINDOW_NORMAL)这样的显示的结果可以随意调整大小。默认为cv2.WINDOW_AUTOSIZE,不可改变大小。
      2. cv2.resizeWindow("Image", 800, 400);以固定的大小显示结果。
    3. 分裂三通道
      方法一:b, g, r = cv2.split(img)b,g,r均为二维矩阵。其他处理图片的库PIL通道顺序为(RGB)
      cv2.imshow("Blue 1", b)显示的为灰度图。
      方法二:redImg = img[:,:,2]
    4. 显示单颜色图。
      image2=np.zeros(image.shape, np.uint8)
      image2[:,:,2]=image[:,:,2] # 0:b 1:g 2:r
    5. 拷贝部分图像并转移到图像其他位置
      cv2.namedWindow("Image", cv2.WINDOW_NORMAL) # 初始化一个名为Image的窗口
      my_roi=image[0:100,0:100]
      image[300:400,300:400]=my_roi
      cv2.imshow('Image',image)
      cv2.waitKey(0)
      cv2.destroyWindow()
      

    相关文章

      网友评论

          本文标题:python 3 +opencv 3.4(二)--图像基本语句

          本文链接:https://www.haomeiwen.com/subject/biwscftx.html