精华内容
下载资源
问答
  • cv2.imread(file) if output_path: cv2.imwrite(os.path.join(output_path, name.replace('jpg', 'png')), im) else: cv2.imwrite(file.replace('jpg', 'png'), im) if __name__ == '__main__': input_path = input...

    新建文件transform_pic.py

    import os
    
    def transform(input_path, output_path):
        for root, dirs, files in os.walk(input_path):
            for name in files:
                file = os.path.join(root, name)
                print('transform' + name)
                im = cv2.imread(file)
                if output_path:
                    cv2.imwrite(os.path.join(output_path, name.replace('jpg', 'png')), im)
                else:
                    cv2.imwrite(file.replace('jpg', 'png'), im)
    
    
    if __name__ == '__main__':
        input_path = input("请输入目标文件夹: ")
    
        output_path = input("请输入输出文件夹: (回车则输出到原地址)")
        if not os.path.exists(input_path):
            print("文件夹不存在!")
        else:
            print("Start to transform!")
            transform(input_path, output_path)
            print("Transform end!")
    
    

    注意:
    1.需要python环境
    2.安装模块,执行pip install opencv-python
    3.该文件目录下执行命令,python transform_pic即可

    展开全文
  • 首先进行科普的是,png格式与普通的图像格式有何不同。...如下图所示,这是本人项目中的一部分,提取人脸面部的某些特征,用绿色显示,而在像素矩阵存储为jpg格式图片时,背景区域会显示黑色(0,0,0)。 ...

    首先进行科普的是,png格式与普通的图像格式有何不同。

    最直观的感受就是,相比于其他格式,png格式多了一个alpha通道,用来存储透明度信息,像素位置 img(x,y) 取值255为不透明,取值为0则为透明。这就使得png具有背景透明的显示效果。如下图所示,这是本人项目中的一部分,提取人脸面部的某些特征,用绿色显示,而在将像素矩阵存储为jpg格式图片时,背景区域会显示为黑色(0,0,0)。

    在很多场合,如AE、Edius等制作视频时,添加素材,我们需要的只是素材主体,而不需要背景,即这种效果

    这就需要在存储图片时将背景去掉。这就是png格式的好处之一,可以设置透明度,将背景去掉。

     

    接下来步入正题,如何将jpg转换成png,也就是增加一个通道,记录透明度信息。

    python的pillow库中有对应api,直接添加A通道。这里有一篇参考文章。https://blog.csdn.net/A156348933/article/details/85503453,将其程序段贴出来

    # pip install Pillow
    import PIL.Image as Image
    # 以第一个像素为准,相同色改为透明
    def transparent_back(img):
        img = img.convert('RGBA')
        L, H = img.size
        color_0 = (255,255,255,255)#要替换的颜色
        for h in range(H):
            for l in range(L):
                dot = (l,h)
                color_1 = img.getpixel(dot)
                if color_1 == color_0:
                    color_1 = color_1[:-1] + (0,)
                    img.putpixel(dot,color_1)
        return img
    
    if __name__ == '__main__':
        img=Image.open('img.png')
        img=transparent_back(img)
        img.save('img2.png')
    

    当然,图片中那一部分像素设置成透明,这需要我们根据自己的项目需求自行设定。以上文章中,设定的条件是

    color_0 = (255,255,255,255)#要替换的颜色

    其中,前三个通道的自己设定,最后一个通道即新添加的alpha通道,默认值全是255。而这个通道,也就是我们要针对修改的值。上述代码中有两个for循环,逐个像素进行处理,效率比较低。笔者用来处理9张1632x1224尺寸的图片,在8核2.4赫兹主频的服务器上运行时间为

    这很难满足生产需要。因此这一次的改进主要是去掉上述代码的for循环。

    def convertPNG(img1):
        img = img1.convert('RGBA')
        r, g, b, a = img.split()    
        a0 = np.array(b) #转换为np矩阵
        a1 = cv2.threshold(a0,10,255,cv2.THRESH_BINARY) #设定阈值
        a2 = Image.fromarray(a1[1]) #转换为Image的tube格式,注意为a1[1]
        a3 = np.array(a2)
        a4 = Image.fromarray(a3.astype('uint8')) #由float16转换为uint8
        img = Image.merge("RGBA", (b, g, r, a4))  
        return img
    
    if __name__ == '__main__':
        img=Image.open('white.png')
        img1=convertPNG(img)
        img1.save('img2.png')

    上述代码,简易言之,就是将pillow图片格式转换到opencv能够处理的格式(uint8的ndarray),然后用矩阵计算的方式来代替两个for循环,之后再转换为pillow能够处理的格式。这样的好处就是节约了大量时间。同样环境下,处理同样图片,时间如下

    效率提升2个数量级。

    另外要讨论的是,这一次用到了cv2.threshhold设定阈值,将阈值以下的像素,alpha通多直接设置成透明。如果需要指定某一特定值(0-255)的像素为透明,则可以用两次cv2.threshhold,其中一次用INV取反,也可以进行矩阵计算。

    展开全文
  • 今天小编就大家分享一篇python dicom图片转换jpg图片的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了python实现批量nii文件转换为png图像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了python通过pil模块raw图片转换png图片的方法,实例分析了Python中pil模块的使用技巧,并Image.fromstring函数进行了较为详尽的分析说明,需要的朋友可以参考下
  • 代码使用Python写的,使用前要读清楚代码中使用说明。
  • 今天小编就大家分享一篇Python OpenCV读取png图像转成jpg图像存储的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Notes:图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import PythonMagick img = PythonMagick.Image('robin.jpg') # 这里要设置一下尺寸,...
  • 主要介绍了Python3.7普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • Python将SVG转换PNG图像

    千次阅读 2020-04-30 14:57:30
    继json和xml之后,需要处理SVG格式的图像数据。这次没有想象中的顺利,找了几...这个库不再支持python2,要求在python3下使用,安装指令如下: sudo pip3 install cairosvg 从SVG转到PNG格式,命令行输入: cai...

    继json和xml之后,需要处理SVG格式的图像数据。这次没有想象中的顺利,找了几种方案最后才成功。

    转换SVG格式用到的是cairosvg库,但是安装的时候失败了很多次,主要是下载过程经常中断,需要耐心,别急。

    这个库不再支持python2,要求在python3下使用,安装指令如下:

    sudo pip3 install cairosvg

    从SVG转到PNG格式,命令行输入:

    cairosvg img.svg -o img.png

    以上主要是测试是否安装正确,在python中批量转换代码如下:

    import cairosvg
    
    
    svg_path = 'img.svg'
    png_path = 'img.png'
    cairosvg.svg2png(url=svg_path, write_to=png_path)

    搞定。

    展开全文
  • Python-png转换jpg

    千次阅读 2020-01-21 10:52:48
    jpg格式:是有损图片压缩,可以使用最少的磁盘空间得到...png转换jpg: from PIL import Image import cv2 as cv import os def PNG_JPG(PngPath): img = cv.imread(PngPath, 0) w, h = img.shape[::-1] in...

    jpg格式:是有损图片压缩,可以使用最少的磁盘空间得到质量较好的图片
    png格式:不属于压缩性。

    png转换成jpg:

    from PIL import Image
    import cv2 as cv
    import os
    
    def PNG_JPG(PngPath):
        img = cv.imread(PngPath, 0)
        w, h = img.shape[::-1]
        infile = PngPath
        outfile = os.path.splitext(infile)[0] + ".jpg"
        img = Image.open(infile)
        img = img.resize((int(w / 2), int(h / 2)), Image.ANTIALIAS)
        try:
            if len(img.split()) == 4:
                # prevent IOError: cannot write mode RGBA as BMP
                r, g, b, a = img.split()
                img = Image.merge("RGB", (r, g, b))
                img.convert('RGB').save(outfile, quality=70)
                os.remove(PngPath)
            else:
                img.convert('RGB').save(outfile, quality=70)
                os.remove(PngPath)
            return outfile
        except Exception as e:
            print("PNG转换JPG 错误", e)

    转换一张图片: 

    #############转换一张图片#################
    import os
    img='img.png'
    Path='./'
    if img.endswith('.png'):
        PngPath= Path + img
        PNG_JPG(PngPath)

    转换多张图片:

    ################转换多张图片#####################
    import os
    path_root = os.getcwd()
    Path='/home/jovyan/work/data/gyx/competition/train_2/'
    img_dir = os.listdir(Path)
    for img in img_dir:
        if img.endswith('.png'):
            PngPath= Path + img
            PNG_JPG(PngPath)
    img_dir = os.listdir(Path)
    for img in img_dir:
        print(img)

     

     

    展开全文
  • PythonMagick PythonMagick库无法用pip或者easy_install来安装,因此,需要手动安装,地址如下: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick...下面这段代码可以讲jpg图片转换png图标格式。 impor...
  • 简单利用pillow库实现的大小与格式转换的脚本。 实现 import os import PIL.Image as Image def changeJpgToPng(w, h, path): ... # 将jpg转换为png png_name = str(path)[0:-len('.jpg')] + '_mi
  • 在网站中上传照片的时候,好多时候照片的格式不符合要求,因此我使用python来进行图片格式的转换。 提前找好转换前的图片 代码如下 #pmj 2021-4-1 图片格式转换 from PIL import Image img='D:\pmjcv\pdd.png'#...
  • pythonjpgpng格式之间的转换

    千次阅读 2020-01-11 16:34:24
    转换利用了python的opencv 模块,关于openCV的介绍请参考xxx,废话不多说上代码 import cv2 img = cv2.imread(r'pic\terminal.png') cv2.imwrite(r'pic\MyPic.jpg', img) emmm,感觉这是一个篇很水的博客 ...
  • png转为jpg格式

    2018-11-14 16:08:47
    可以将PNG图片转为JPG图片的程序,语言为python,方便快捷。
  • 最近从网页上摘下来的资源有好多webp格式的图片,需要转为pngjpg,之前也没怎么看过python,稍微看了一下写了个小工具,能够同级目录下所有webp格式的图片全部转为png或者jpg,博主是在python2.7环境下做的开发...
  • python 实现 svg 转 png 服务
  • python 复制copy图像和转png格式, 利用python 复制copy图像和转png格式
  • Python代码实现将png格式图片批量转换为jpg个格式

    千次阅读 多人点赞 2019-03-15 10:52:25
    Python代码实现将png格式图片批量转换为jpg个格式 问题由来: 最近在做行人检测相关的项目,需要用opencv处理数据集,选用的是INNRIA数据集,但是opencv打开png格式的图片总是报错,故需要图片转换为jpg格式。 ...
  • # python图片格式jpg转换为png(批量处理,尺寸不变) # author: zhou jinxing import os import PIL.Image as Image def changeJpgToPng(srcPath,dstPath): # 修改图像大小 image = Image.open(srcPath) # 将jpg...
  • 主要介绍了Ubuntu+python将nii图像保存成png格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 该程序.fits文件转换为.jpg文件。 (或者您也可以稍作修改即可拟合文件转换为png或bmp) 安装 命令git clone 。 在当前目录中新建文件夹“ data”和“ image”,然后.fits文件复制到data文件夹。 ( mkdir ...
  • rank_v2~rank_v29-5-103235291.pc_search_result_cache&utm_term=python%20bmp%E6%96%87%E4%BB%B6%E5%A6%82%E4%BD%95%E8%BD%AC%E5%8C%96%E4%B8%BApng Python代码:批量BMP图片格式转换为JPG图片格式 暂时参考上述...
  • 今天小编就大家分享一篇使用python将图片格式转换为ico格式的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python将png转换为ico

    2020-12-07 00:21:03
    Notes:图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import PythonMagick img = PythonMagick.Image('robin.jpg') # 这里要设置一下尺寸,...
  • python将gif图片转换png图片

    千次阅读 2018-06-27 10:21:15
    这是个小方法,在这里贴出来,希望能帮助到您!...#gif图片转成PNG图片 im = Image.open('image.gif') def iter_frames(im): try: i= 0 while 1: im.seek(i) imframe = im.copy() if i =...
  • 环境ubuntu 20.04系统,python3 需要安装PythonMagick,然后可以直接调用...Notes:图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import Pyth

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,425
精华内容 6,170
关键字:

python将jpg转换为png

python 订阅