三、读取一张图片

本文介绍如何利用OpenCV库加载图像文件到内存,并在窗口中显示出来。包括使用cvLoadImage函数读取图像,cvNamedWindow创建显示窗口,cvShowImage在窗口中展示图像,以及cvWaitKey等待用户按键操作。

1、IplImage:这个结构体在opencv中就代表一张图

2、IplImage* cvLoadImage(const char* filename, int flags=CV_LOAD_IMAGE_COLOR)

      功能:把图像载入内存并返回指针

      参数:

              filename:指明要显示的图像的位置

              flags:有三个选项,分别是

                            #define CV_LOAD_IMAGE_UNCHANGED -1    //原图是咋样的就咋样

                            #define CV_LOAD_IMAGE_GRAYSCALE 0     //灰度(单通道)显示

                            #define CV_LOAD_IMAGE_COLOR        1      //彩色(三通道)显示

                            若省略flags,则默认为CV_LOAD_IMAGE_COLOR ;

3、int cvNamedWindow(const char *name, int flags);

      功能:创建一个窗口用于显示图像

      参数:flag = 0表示可以调整窗口大小,flag = CV_WINDOW_AUTOSIZE不能

4、void cvShowImage(const char *windowname, cvArr *image);
      功能:在窗口windowname中显示图像image

5、int cvWaitKey(int delay); 
      功能:在delay个ms内返回用户按下的键的ASCII码值,否则返回0;若delay=0表示会一直等待下去

6、void cvDestroyWindow(const char *name)

      功能:销毁窗口

7、void cvReleaseImage(IplImage** image)
      功能:释放图像image的内存

代码演示

#include "highgui.h"

int main(void)
{
	/*载入图片,并返回指针*/
	IplImage *src = cvLoadImage("/home/ling/Desktop/1.png");

	/*创建一个窗口*/
	cvNamedWindow("showImage", 0);

	/*在窗口上现实图片*/
	cvShowImage("showImage", src);

	/*等待退出*/
	cvWaitKey(0);

	return 0;
}



在Python中,有多种方法可以读取一张图片,以下是几种常见的方式: #### 使用OpenCV读取图片 OpenCV是一个广泛用于计算机视觉任务的库,使用`cv2.imread()`函数可以读取图片,它会以BGR的顺序将图片读入为`np`数组。示例代码如下: ```python import cv2 a = cv2.imread('C:/Users/14461/data2/hymenoptera_data/train/ants/0013035.jpg') ``` 也可以参照下面完整示例代码读取和显示图片: ```python import cv2 as cv src = cv.imread('E:\imageload\example.png') cv.namedWindow('input_image', cv.WINDOW_AUTOSIZE) cv.imshow('input_image', src) cv.waitKey(0) cv.destroyAllWindows() ``` 上述两种示例分别来自于引用[^3]和引用[^4]。 #### 使用PIL库读取图片 `PIL`(Python Imaging Library)是Python常用的图像处理库,使用`Image.open()`函数可以读取图片读取后的对象是`JpegImageFile`格式,若需要进行数值计算,可将其转化为`np`数组,转化后是RGB格式。示例代码如下: ```python from PIL import Image import numpy as np b = Image.open('C:/Users/14461/data2/hymenoptera_data/train/ants/0013035.jpg') c = np.array(b) ``` 此示例来自引用[^3]。 #### 使用`matplotlib`读取图片 `matplotlib`是一个绘图库,也可以用于读取图片,使用`matplotlib.image.imread()`和`matplotlib.pyplot.imread()`函数可以以RGB顺序读入图片,读入后为`np`数组。示例代码如下: ```python import matplotlib.image as imgplt import matplotlib.pyplot as plt d = imgplt.imread('C:/Users/14461/data2/hymenoptera_data/train/ants/0013035.jpg') e = plt.imread('C:/Users/14461/data2/hymenoptera_data/train/ants/0013035.jpg') ``` 此示例来自引用[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值