栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

出现通道数不匹配问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

出现通道数不匹配问题

1. 批量将rgb图转换为灰度图
matlab代码:

pathdir='D:Matlab InstallMATLABR2021Abinground_truth';%文件夹路径
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);
     mysize=size(img);
     fprintf('a=%f',mysize);
     x=rgb2gray(img);
     imwrite(x,filename,'png');%自动设置为替换原文件,可以修改
     str='正在运行中';
     waitbar(n/numel(files),hwait,str);
end
close(hwait);

或python代码

 

转换后,查看图片属性,位深度从“24” 变为 “8”, 且图片的mode从“rgb”变为“L”

2. 批量jpg转png
用批处理bat文件处理,新建txt, 里面内容输入:

 ren *.jpg *.png

将txt文件重命名为.bat文件

3. 将灰度图 二值化后 仍为灰度图
python代码

import os
from PIL import Image

# 源目录
MyPath = r'C:UsersZDesktop111'
# # 输出目录
OutPath = 'C:/Users/Z/Desktop/333/'


def processImage(filesoure, destsoure, name, imgtype):
    '''
    filesoure是存放待转换图片的目录
    destsoure是存在输出转换后图片的目录
    name是文件名
    imgtype是文件类型
    '''
    imgtype = 'png'
    # 打开图片
    img = Image.open(name)
    # 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。
    # 二值化
    # 自定义灰度界限,大于这个值为黑色,小于这个值为白色
    threshold = 200

    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(256)

    # 图片二值化
   
    photo = img.point(table, 'L')  # 'L'表示灰度图,图片位深度为8,若这里设置为'1',则图像是二值图,位深度是1
    photo.save(destsoure + name, imgtype)


def run():
    # 切换到源目录,遍历源目录下所有图片
    os.chdir(MyPath)
    for i in os.listdir(os.getcwd()):
        # 检查后缀
        postfix = os.path.splitext(i)[1]
        if postfix == '.png':
            processImage(MyPath, OutPath, i, postfix)


if __name__ == '__main__':
    run()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号