python cv.imread_为什么cv2里没有imread

python cv.imread_为什么cv2里没有imread为什么使用Python-OpenCV虽然python很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV来讲,它还是弱小很多。跟很多开源软件一样OpenCV也提供了完善的python接口,非常便于调用。OpenCV的稳定版是2.4.8,最新版是3.0,包含了超过2500个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV的函数来实现,超级方便。一、需要工具本…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

为什么使用Python-OpenCV

虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多。跟很多开源软件一样OpenCV 也提供了完善的python 接口,非常便于调用。OpenCV 的稳定版是2.4.8,最新版是3.0,包含了超过2500 个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV 的函数来实现,超级方便。

一、需要工具

本机使用python 2.7.10下调试代码均通过,一下学习需要有一定的代码阅读能力,一下学习只介绍函数方法:

Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。而且它简单易学,初学者几个小时就可以基本入门。再加上Numpy 和matplotlib 这两个翅膀,Python 对数据分析的能力不逊于Matlab。Python 还被称为是胶水语言,有很多软件都提供了Python 接口。尤其是在linux 下,可以使用Python 将不同的软件组成一个工作流,发挥每一个软件自己最大的优势从而完成一个复杂的任务。比如我们可以使用Mysql 存储数据,使用R 分析数据,使用matplotlib 展示数据,使用OpenGL 进行3D 建模,使用Qt 构建漂亮的GUI。而Python 可以将他们联合在一起构建一个强大的工作流。

二、入门小试

1、图像读入:cv2.imread()

使用函数cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。

• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略, 
这是默认参数。 

• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

import cv2

img = cv2.imread(‘lena.jpg’,0)

PS:调用opencv,就算图像的路径是错的,OpenCV 也不会提醒你的,但是当你使用命 
令print img时得到的结果是None。

2、显示图像cv2.imshow()

使用函数cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。

cv2.imshow(‘image’,img)

cv2.waitKey(0)

3、保存图像cv2.imwrite()

cv2.imwrite('lena.png',img)
  • 这里写图片描述

==========================

使用cv2.imread(),cv2.imshow(),cv2.imwrite()读取、显示和保存图像

一、读入图像

使用函数cv2.imread(filepath,flags)读入一副图片

  • filepath:要读入图片的完整路径
  • flags:读入图片的标志 
    • cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
    • cv2.IMREAD_GRAYSCALE:读入灰度图片
    • cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
    • import numpy as npimport cv2img = cv2.imread(‘1.jpg’,cv2.IMREAD_GRAYSCALE)

二、显示图像

使用函数cv2.imshow(wname,img)显示图像,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小

  • cv2.imshow(‘image’,img)
  • cv2.waitKey(0)
  • cv2.destroyAllWindows()#dv2.destroyWindow(wname)
  • cv2.waitKey顾名思义等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
  • cv2.destroyAllWindow()销毁所有窗口
  • cv2.destroyWindow(wname)销毁指定窗口

三、保存图像

使用函数cv2.imwrite(file,img,num)保存一个图像。第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 – 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3.

注意:

  • cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
  • cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。
  • cv2.imwrite(‘1.png’,img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
  • cv2.imwrite(‘1.png’,img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

四、图片操作

1、使用函数cv2.flip(img,flipcode)翻转图像,flipcode控制翻转效果。

  • flipcode = 0:沿x轴翻转
  • flipcode > 0:沿y轴翻转
  • flipcode < 0:x,y轴同时翻转
imgflip = cv2.flip(img,1)

2、复制图像

imgcopy = img.copy()

3、颜色空间转换

#彩色图像转为灰度图像

img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

灰度图像转为彩色图像img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)

示例

读入一副图像,按’s’键保存后退出,其它任意键则直接退出不保存

import numpy as np

import cv2

img = cv2.imread(‘1.jpg’,cv2.IMREAD_UNCHANGED)

cv2.imshow(‘image’,img)

k = cv2.waitKey(0)

if k == ord(‘s’):

# wait for ‘s’ key to save and exit

cv2.imwrite(‘1.png’,img)

cv2.destroyAllWindows()else:

cv2.destroyAllWindows()

参考:https://blog.csdn.net/Eddy_zheng/article/details/48286735

         https://blog.csdn.net/djcxym/article/details/52097812

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181917.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午10:16
下一篇 2022年10月14日 下午10:16


相关推荐

  • 离别&#183;伤

    离别&#183;伤

    2021年12月13日
    56
  • ValueError: too many values to unpack (expected 4)错误,小波变换函数 wavedec2 使用时提示的「建议收藏」

    ValueError: too many values to unpack (expected 4)错误,小波变换函数 wavedec2 使用时提示的「建议收藏」    错误信息还算简单,解包成太多的值,意思就是说你要赋值的变量多了,你的values少了结论    你要赋值的变量多了,你的values少了,这是根本原因,就比如a,b,c,d=20,5,5,就会报错我的出错代码importpywtimportxlrdimportnumpyasnpdefexcel2matrix(path):#把x

    2022年7月23日
    30
  • HARQ简介

    HARQ简介这里写自定义目录标题欢迎使用 Markdown 编辑器新的改变功能快捷键合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchart 流程图导出与导入导出导入欢迎使用 Markdown 编辑器你好 这是你第一次使用 Markdown 编辑器所展示的欢迎页 如果你想学习如何使用 Mar

    2026年3月18日
    1
  • pycharm新建一个python文件无法运行,只会执行main.py文件

    pycharm新建一个python文件无法运行,只会执行main.py文件暴躁了好一会儿 pycharm 新建一个 python 文件无法运行 只会执行 main py 文件按快捷键 Shift F10 会执行上一个运行的代码文件按快捷键 Shift Ctrl F10 就可以直接执行当前脚本了

    2026年3月27日
    3
  • 单一职责原则简介

    单一职责原则简介参考文章 面向对象编程的六大原则 1 单一职责原则 1 什么是单一职责 单一职责原则 Singlerespon 简称 SRP 顾名思义 是指一个类或者一个模块应该有且只有一个职责 它是面向对象编程六大原则之一 2 单一职责的粒度 单一职责的粒度 可以是某个方法 某个类 某个程序包甚至某个功能 某个模块 甚至某个系统 每一个层次上都可以进行单一职责设计 下面来举个例子说明一下 模块级别 某购物平台 包含如下几个模块 用户模块 商品模块

    2026年3月16日
    2
  • linux下查看mysql端口号和修改端口号方法

    linux下查看mysql端口号和修改端口号方法一 查看端口号 1 登录 mysql root localhost mysql uroot pEnterpasswo 输入数据库密码 2 使用 showglobalva port 命令查看端口号 3307 即为当前端口号 二 修改 mysql 端口号 1 编辑 etc my cnf 文件 root localhost vi etc my cnf2 修改端口 port 为自己想要的端口 3 重启 mysql root l

    2026年1月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号