python3随笔-opencv读取图像数据

如何安装opencv-python

$pip3 install opencv-python

如何读取图像数据

import numpy as np
import cv2 as cv
img = cv.imread(‘1.png‘)
print(img)
print(img.dtype)

[[[200 228 197]
[200 228 197]
[200 228 197]
...
...
[200 228 197]
[200 228 197]
[200 228 197]]]

dtype(‘uint8‘)

使用下面函数

Mat cv::imread  (   const String &  filename,
int     flags = IMREAD_COLOR
)
Python:
retval  =   cv.imread(  filename[, flags]   )

imread函数具体说明

可以通过其行和列坐标访问像素值。对于BGR映像,它返回一个蓝、绿、红值数组。对于灰度图像,只返回相应的强度。数据读取方式为:
img[行号,列号,:]

函数根据内容而不是文件扩展名确定图像的类型。
在彩×××像的情况下,解码后的图像将以B G R顺序存储通道。
当使用IMREAD_GRAYSCALE时,如果可用,将使用编×××的内部灰度转换。结果可能与cvtColor()的输出不同
在Microsoft Windows OS和MacOSX上,带有OpenCV映像(libjpeg、libpng、libtiff和libjasper)的编×××默认使用。因此,OpenCV总是可以读取jpeg、png和tiff。在MacOSX上,还有一个使用本地MacOSX图像阅读器的选项。但是要注意的是,由于MacOSX中嵌入了颜色管理,当前这些本机图像加载器提供的图像像素值不同。
在Linux、BSD版本和其他类unix的开源操作系统上,OpenCV寻找OS映像提供的编×××。安装相关的包(不要忘记开发文件,例如Debian和Ubuntu*中的“libjpeg-dev”)以获得编×××支持或在CMake中打开OPENCV_BUILD_3RDPARTY_LIBS标志。
在CMake中将WITH_GDAL标记设置为true和IMREAD_LOAD_GDAL来加载图像的情况下,将使用GDAL驱动程序来解码图像,支持以下格式:光栅、向量。
如果EXIF信息嵌入到图像文件中,将考虑EXIF方向,因此图像将相应地旋转,除非传递了IMREAD_IGNORE_ORIENTATION标记。

显示图像

cv.imshow(‘img‘,img)

原文地址:http://blog.51cto.com/13959448/2315317

时间: 2024-10-13 17:06:55

python3随笔-opencv读取图像数据的相关文章

用opencv读取图像鼠标点的像素,更正一个Bug

作者:skyseraph 出处:http://www.cnblogs.com/skyseraph/ 以下代码在网上流传很广. 不过,调试运行之后发现,功能是正确的,但是内存很快就耗尽,导致死机.经过查找,加上: cvReleaseImage(&img1);    //释放源图像占用的内存 这一行是我(szliug)加的,否则内存很快就会耗尽,会死机的. 之后运行正常. /*===============================================// 功能:OpenCV Ut

[实例]ROS使用OpenCV读取图像并发布图像消息在rviz中显示

思路: (1)使用opencv读取本地图像 (2)调用cv_bridge::CvImage().toImageMsg()将本地图像发送给rviz显示 一.使用opencv读取本地图像并发布图像消息 (1)利用catkin新建一个工程叫rosopencv,并进行初始化 mkdir -p rosopencv/src cd rosopencv/src catkin_create_pkg rosopencv sensor_msgs cv_bridge roscpp std_msgs image_tran

基于OpenCV读取摄像头进行人脸检测和人脸识别

前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,opencv的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的了,识别的代码是从OpenCV官网上找到的:http://docs.opencv.org/trunk/modules/contrib/doc/facerec/facerec_api.html 需要注意的是,opencv的FaceRecogizer目前有三个类实现了它,特征脸和fisherface方法

OpenCV读取视频和图像序列

在使用OpenCV时候,我们首先会做的是获取待处理的图像,这个图像可能来源于已存储的视频文件.也可能来源于实时的摄像头画面.或是某个文件夹下的一系列图片.或许你会觉得,这都是小菜一碟,因为我们学习OpenCV的第一步一般是学习如何加载和显示一幅图片.对于打开摄像头或是读取视频的程序,网上也是一抓一大把.如果你是初学者,不妨看一下我下面的总结,或许有你不曾注意到的. 对于图像或视频的加载.显示.窗口设置.工具条.图像合并为视频.视频分割成图像.打开视频或摄像头等操作的定义是放在OpenCV的hig

OpenCV中IplImage图像格式与BYTE图像数据的转换

最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matching代码仿真.Andreas提供的源码中没有使用opencv,导致我一时无法适应如何显示处理的中间结果.将对应的库加载后,仿照采集相机图像数据的方式,从内存中读取对应图像到IplImage类型指针指定的内存空间,方便代码的调试和效果观测.其中用到的部分资料如下. *******************

转载---CGImageSource对图像数据读取任务的抽象

转载地址:http://www.tanhao.me/pieces/1019.html CGImageSource是对图像数据读取任务的抽象,通过它可以获得图像对象.缩略图.图像的属性(包括Exif信息). 1.创建CGImageSourceRef 1 2 NSString *imagePath = [[NSBundle bundleForClass:self.class] pathForImageResource:@"test.png"]; CGImageSourceRef image

从二进制数据流中构造GDAL能够读取的图像数据

在非常多时候.我们的图像数据往往都不是文件方式存储在磁盘上.而是可能从网络或者数据库中获取的是二进制的图像数据流.最简单的方式和最easy想到的方式就是将这个文件流保存到磁盘上形成一个文件,然后再使用GDAL来打开进行处理. 可是这样有一个不太好的地方就是须要生成一个磁盘的暂时文件.并且在磁盘上折腾了一圈后会添加不必要的系统开销. 针对这个文件.GDAL库里面已经有现成的API来进行处理.以下就使用一个简单的样例来进行说明,代码例如以下: GByte *GetStream(const char*

Pytorch读取,加载图像数据(一)

在学习Pytorch的时候,先学会如何正确创建或者加载数据,至关重要. 有了数据,很多函数,操作的效果就变得很直观. 本文主要用其他库读取图像文件(学会这个,你就可以在之后的学习中,将一些效果直观化) 更好的文章组织结构: Github 关注公众号:tuduisuinian(土堆碎念),菜单底部可以获取pytorch教程PDF文档 零:准备 加载数据前,需要掌握正确的读取路径方法.很多教程中的例子,在讲解的时候,没有提供图片,或者读者不知道修改教程中的读取路径,打击了热情. 建议:为了保证大家可

C++&OpenCV中读取图像到数组的两种

///method 1 read the image data one by one for (int row = 0, i = 0;row < imgDst.rows;row++) { for (int col = 0;col < imgDst.cols;col++) { cout << setw(3) << (int)imgDst.at<uchar>(row, col) << " "; arr[i] =imgDst.at&