opencv 读取图片(C/C++/python)

本文详细介绍了使用OpenCV库在不同编程语言中读取图片的方法,并解释了关键参数flags的作用,通过实例展示了如何正确地读取灰度图及保持原始图像格式。

参考:

http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imread#Mat imread(const string& filename, int flags)


############################################################


函数功能:读取一张图片

C++版本:

Mat imread(const string& filename, int flags=1)
Python 版本:

cv2.imread(filename[, flags]) -> retval
C语言版本:

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


参数解析:

filename:图片名

flags:

1)当flags > 0时,表示得到一个3通道颜色图像

2)当flags = 0时,表示得到一个灰度图像

3)当flags < 0时,得到原图像


flags很重要。如果你想要得到源图像的话,必须设置flags<0,而默认情况下,flags>0,所以当你想加载一张灰度图,可能得到的是一张彩色图;或者当你想要加载一个RGBA模式的4通道图像,由于没有设置flags,那么得到的图像仅为3通道RGB图像。


#################################################################


例子:加载一张灰度图




由图可知,没有设置flags参数时,默认值>0,所以将灰度图转换为3通道彩色图


所以,正确的读取原图像的方式为:

C++:

imread(filename, -1)
Python:

cv2.imread(filename, -1)
C语言:

cvLoadImage(filename, -1)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值