利用OpenCV判断是否加载图片的两种方法

 更新时间:2022年11月10日 09:37:52   作者:欧阳磊  
这篇文章主要介绍了利用OpenCV判断是否加载图片的两种方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

OpenCV判断是否加载图片问题

OpenCV加载图片是图像处理最基本的操作,但有的时候我们加载图片会因为图片路径不正确或者没有图片等原因而报错,经常写代码的凭经验就知道是哪错了,但初学者一般是看不懂这些错误,就会很恼火了,如果加个判断语句就会不一样了啥,如果是图片路径的原因而导致加载不到图片,它会在终端显示你要输出的错误信息,这样一看就很清楚了。

【方法一】

src = imread( "1.jpg" ,CV_LOAD_IMAGE_COLOR );    //注意路径得换成自己的
//判断是否加载图片
if(!src.data)
{
    cout<<"Picture loading failed !"<<endl;
    return -1;
}

注意:判断里面是!src.data,有感叹号,没括号的,它不是函数。

【方法二】

src = imread( "1.jpg" ,CV_LOAD_IMAGE_COLOR );    //注意路径得换成自己的
if(src.empty())
{
    cout<<"Picture loading failed !"<<endl;
    return -1;        
}

注意:判断里面是src.empty(),这里就调用了一个函数,输代码的时候要仔细。

最后放张图:

OpenCV图片的加载显示和保存

图片的加载与显示

import cv2 as cv
import numpy as np
'''
cv2.imread()
imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:

cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1。
而imread函数的第二个参数不写就是默认读原始图片

imshow()函数:
有两个参数,第一个参数为显示的窗口名,第二个为显示的图像
'''
im=cv.imread('C:/Users/ASUS/Desktop/rgb2gray/fruit.png')#读取原始图片
im2=cv.imread('C:/Users/ASUS/Desktop/rgb2gray/fruit.png',cv.IMREAD_COLOR)#读取RGB彩色图片
cv.imshow('color image',im)
cv.imshow('color image2',im2)
cv.waitKey(0)

运行结果

可以看到两种形式是一样的

另:cv2.waitKey()函数用法:

waitKey()–是在一个给定的时间内(单位ms)等待用户按键触发;

如果用户没有按下键,则接续等待(循环)

常见:设置waitKey(0),则表示程序会无限制的等待用户的按键事件

一般在imgshow的时候,如果设置waitKey(0),代表按任意键继续

图像的保存

cv.imwrite('lena2.jpg',im)
cv.imwrite('lina_jpeg_quality_90.jpg',im,[int(cv.IMWRITE_JPEG_QUALITY),90])
cv.imwrite('line_png_compress_2.png',im,[int(cv.IMWRITE_PNG_COMPRESSION),2])

cv2.imwrite函数的第三个参数指定保存图像的质量或者压缩率。对于jpeg,其表示图像的质量,0-100,数值越大图像质量越好,默认值是95。对于png,设置的值压缩率,0-9,数值越大压缩率越高,图像越小。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Matplotlib条形图之分组条形图和堆叠条形图详解

    Matplotlib条形图之分组条形图和堆叠条形图详解

    这篇文章主要为大家详细介绍了Matplotlib条形图之分组条形图和堆叠条形图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • python基础知识之try...except...的详细用法实例

    python基础知识之try...except...的详细用法实例

    在各种编程语言进行工作和学习的过程中,都会有一些错误异常,下面这篇文章主要给大家介绍了关于python基础知识之try...except...的详细用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Pandas如何通过np.array函数或tolist方法去掉数据中的index

    Pandas如何通过np.array函数或tolist方法去掉数据中的index

    这篇文章主要介绍了Pandas如何通过np.array函数或tolist方法去掉数据中的index问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • opencv实现矿石图片检测矿石数量

    opencv实现矿石图片检测矿石数量

    这篇文章主要为大家详细介绍了opencv实现矿石图片检测矿石数量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • pyqt 实现为长内容添加滑轮 scrollArea

    pyqt 实现为长内容添加滑轮 scrollArea

    今天小编就为大家分享一篇pyqt 实现为长内容添加滑轮 scrollArea,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python实现特定场景去除高光算法详解

    Python实现特定场景去除高光算法详解

    这篇文章主要介绍了如何利用Python+OpenCV实现特定场景去除高光算法,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2021-12-12
  • Python实现复杂对象转JSON的方法示例

    Python实现复杂对象转JSON的方法示例

    这篇文章主要介绍了Python实现复杂对象转JSON的方法,结合具体实例形式分析了Python针对json转换的相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • python opencv通过按键采集图片源码

    python opencv通过按键采集图片源码

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,本文给大家分享python opencv通过按键采集图片源码,感兴趣的朋友一起看看吧
    2021-05-05
  • python数据类型中的字符串你了解多少

    python数据类型中的字符串你了解多少

    这篇文章主要为大家详细介绍了python数据类型中的字符串,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Python导入Excel数据表的几种实现方式

    Python导入Excel数据表的几种实现方式

    在Python中可以使用许多库来处理Excel文件,下面这篇文章主要给大家介绍了关于Python导入Excel数据表的几种实现方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01

最新评论