OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常

问题如上。环境:VS2013。

代码如下:

#include "stdafx.h"
#include "opencv2\opencv.hpp"

using namespace cv;

int _tmain(int argc,_TCHAR* argv[])
{
    Mat image=imread("read1.PNG");
    namedWindow("My Image");
    imshow("My Image",image);
    waitKey(0);
    return 0;
}

莫名出现内存泄露,中断时,发现异常出现在imshow执行的时候,查看image的数据,发现data为NULL。

于是加了一个判断语句。

#include "stdafx.h"
#include "opencv2\opencv.hpp"

using namespace cv;

int _tmain(int argc,_TCHAR* argv[])
{
    Mat image=imread("read1.PNG");
    if(image.data!=NULL){
         namedWindow("My Image");
         imshow("My Image",image);
         waitKey(0);
    }
    return 0;
}

图片位置没有问题,imread也支持.png格式,不知道为什么一直读取不了。

然后我又试了一张jpg格式的图片,成功读取。

难道是PNG大写的关系?把图片格式改为.png,成功读取。

再改回PNG大写,居然也没问题?!!!

好吧,反正问题解决了就OK了。

时间: 2025-01-07 17:03:58

OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常的相关文章

base64编码加密图片和展示图片

base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于 网络传输.由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下.虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在 源码里,而不需要浏览器在读取到源码后再从服务器上下载.如何对图片进行base64编码 <?php $file = "./image/index.png"; $type = getimagesi

在opencv下读取视频保存为图片

VideoCapture capture; capture.open("D:\\car.avi");//读取视频 对于视频下一帧的读取: capture>>frameImg;//读取视频流下一帧控制,字符重载 对于视频的图片保存 std::stringstream ss;//存储图片路径保存信息 ss<<"D:/output/image_"<<setfill('0')<<setw(3)<<(nCount-1

【转】OpenCV—imread读取数据为空

之前遇到一个很郁闷的问题,因为从用OpenCV2.3.1改成OpenCV2.4.4,开始改用Mat和imread来代替Iplimage和cvLoadImage,出了点小问题:imread读入数据总是为空. 程序为: 1 Mat image = imread ("lena.jpg"); 2 imshow("lena",image); 3 cvWaitKey(0); 刚开始以为是路径的问题,后来偶然采用Iplimage获取图像,可以很好的读取图片: 1 IplImage

添加图片并展示 图片评论

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0">

OpenCV视频读取播放,视频转换为图片

转载请注明出处!!! http://blog.csdn.net/zhonghuan1992 OpenCV视频读取播放,视频转换为图片 介绍几个有关视频读取的函数: VideoCapture::VideoCapture VideoCapture能够从文件里或者摄像头中读取视频,这是提供给C++的接口的.C的接口是CvCapture结构.        <span style="white-space:pre"> </span>C++: VideoCapture::

OpenCV入门笔记(三) 图片处理

OpenCV中提供了很多处理图片的强大函数,可以对很多格式的图片加特效!有点实现Photoshop里的工具的感觉. 下面先介绍一些简单和常见的特效. 二值化(Image Threshold) 参考这里:Image Processing 二值化只能处理灰度图,而所谓的灰度图,就是一幅只用 0-255 这个范围来表示每一个像素点的图像.灰度图没有色彩信息,看起来灰萌灰萌哒:但是又不完全只有黑白两种颜色. 二值化,顾名思义,就是把灰度图的0-255的范围,映射到 0 和 1 两个值上.最简单的做法,便

OpenCV探索之路(五):图片缩放和图像金字塔

对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_AREA来插值:若要放大图像,推荐使用CV_INTER_LINEAR. 现在说说调用方式 第一种,规定好你要图片的尺寸,就是你填入你要的图片的长和高. #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> using namespace std

OpenCV 入门教程 之环境配置 + 图片匹配 matchTemplate

1.什么是OpenCV OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成. 总结特点: 1.开源, 商业用途也不必公开自己的源代码或者改善后的代码. 2.效率高,简单的图像处理就算了,涉及到复杂的处理一般的类库无法满足比如CXImage 3.有巨头维护(Intel) 有这三个

MATLAB读取一张RGB图片转成YUV格式

1.读入照片 控制输出的标志定义 clc;close all;clear YES = 1; NO = 0; %YES表示输出该文件,请用户配置 yuv444_out_txt = 1; yuv444_out_yuv = 0; yuv422_out_txt = 0; yuv422_out_yuv = 0; yuv420_out_txt = 0; yuv420_out_yuv = 1; filename = 'Koala.jpg'; filestr = filename(1:findstr(filen