dalun图像转单通道scm.imread 和cv2.imrea

2018-11-29  本文已影响0人  sunnylxs

1.    批量把文件夹中3通道变为单通道

pathdir='./data/';%文件夹路径

format = 'png';%文件格式

files=dir(strcat(pathdir,'*.',format));

steps=100;

hwait=waitbar(0,'准备开始');

for n=1:numel(files)

    filename=strcat(pathdir,files(n).name);

    img=imread(filename);

    x=rgb2gray(img);

    mysize=size(img);

    mysize

    sizes=size(x);

    sizes

    imwrite(x,filename,'png');%自动设置为替换原文件,可以修改

    str='正在运行中巴啦啦巴啦';

    waitbar(n/numel(files),hwait,str);

end

close(hwait);

2.注释代码为批量查看图片的通道数,下面代码为查看单张图片的通道数

% %pathdir='./data/';%文件夹路径

% %format = 'png';%文件格式

% %files=dir(strcat(pathdir,'*.',format));

% for n=1:numel(files)

%      filename=strcat(pathdir,files(n).name);

%      img=imread(filename);

%      mysize=size(img);

%      mysize

% end

img=imread('./data/1599.png');

mysize=size(img);

mysize

-------------------------------------------------------------------------------------

转自:https://blog.csdn.net/weixin_40546602/article/details/80763310  

1、cv2.imre# 加载灰度图像数据ad()函数读取灰度图像

#-----------------------------------------

img_gray_data = cv2.imread('./images/AN001.png')

print('数据类型:', type(img_gray_data))

print('数组类型:', img_gray_data.dtype)

print('数组形状:', img_gray_data.shape)

print('数组最大值:{},最小值:{}'.format(img_gray_data.max(), img_gray_data.min()))

#---------------------------------

结果:数据类型: <class 'numpy.ndarray'>

数组类型: uint8数组形状: (490, 640, 3)

数组最大值:255,最小值:0

即使读取的图片为灰度图,cv2.imread()函数也会按bgr三个通道读取。这三个通道的像素值是相同的。

2、scm.imread()函数读取灰度图像

img = scm.imread('./images/AN001.png')

print('数据类型:', type(img))

print('数组类型:', img.dtype)

print('数组形状:', img.shape)

print('数组最大值:{},最小值:{}'.format(img.max(), img.min()))

结果:数据类型: <class 'numpy.ndarray'>

数组类型: uint8

数组形状: (490, 640)

数组最大值:255,最小值:0

此函数读取的图像仅有一个亮度通道,需要谨慎处理

3、scm.imresize()函数和transform.resize()函数对(490,640)二维灰度图像的处理

img_resize = scm.imresize(img, (256, 256, 3))

img_resize ==transform.resize(img, (256, 256, 3))

# scm.imresize()函数

数组形状: (256, 256)

数组最大值:255,最小值:0

# transform.resize()函数

数组形状: (256, 256, 3)

数组最大值:1.0,最小值:0.0

前者对(490,640)二维数据进行了resize,而后者处理后变成了3通道数据,而且,像素值从0-255,变成了0-1,进行了归一化。

上一篇下一篇

猜你喜欢

热点阅读