美文网首页
dalun图像转单通道scm.imread 和cv2.imrea

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

作者: sunnylxs | 来源:发表于2018-11-29 14:32 被阅读0次

    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,进行了归一化。

    相关文章

      网友评论

          本文标题:dalun图像转单通道scm.imread 和cv2.imrea

          本文链接:https://www.haomeiwen.com/subject/qgqfcqtx.html