您的位置 首页 php

Python使用ImageMagick进行图像处理指南

在图像处理方面,Python是一门广泛使用的编程语言。每当我们为建立模型处理图像数据时,对图像的预处理是至关重要的。在预处理中,我们确保图像具有正确的尺寸和正确的类型。除了pilllow、opencv等, Imagemagick 处理图像也很方便。

Imagemagick简介

ImageMagick可创建、编辑、编排或转换位图图像。它可以读取和写入各种格式的图像(超过200种),包括PNG、JPEG、GIF、HEIC、TIFF、DPX、EXR、WebP、Postscript、PDF和 SVG 等。使用ImageMagick来调整大小、翻转、镜像、旋转、扭曲、剪切和转换图像,调整图像颜色,应用各种特殊效果,或绘制文本、线条、多边形、椭圆和贝塞尔曲线。

ImageMagick的通常在命令行中使用,或者你可以从用你喜欢的 编程语言 编写的程序中使用这些功能。比如PythonMagick(Python),G2F(Ada),MagickCore(C),MagickWand(C),ChMagick(Ch),ImageMagickObject(COM+),Magick++(C++),JMagick(Java),L-Magick(Lisp),NMagick(Neko/haXe),MagickNet(。 NET)、PascalMagick(Pascal)、PerlMagick(Perl)、MagickWand for PHP(PHP)、IMagick(PHP)、、Magick(R)、RMagick(Ruby)或TclMagick(Tcl/TK)。

ImageMagick利用多个计算线程来提高性能,可以读取、处理或写入百万、千兆或兆像素的图像尺寸。

ImageMagick的官网是。源代码库是。

Imagemagick能做什么?

  • 格式转换:格式转换(如PNG转换成JPEG)。
  • 转换:调整大小、旋转、纠偏、裁剪、翻转或修剪图像。
  • 透明度:使图像的某些部分不可见。
  • 绘制:在图像上添加形状或文字。
  • 装饰:为图像添加边界或框架。
  • 特效:对图像进行模糊、锐化、阈值或调色。
  • 文本和评论:在图像中插入描述性或艺术性文本。
  • 图像渐变:创建一种颜色的渐变混合,其形状是水平、垂直、圆形或椭圆形的。
  • 图像识别:描述图像的格式和属性。
  • 复合:将一个图像重叠在另一个图像上。
  • 蒙太奇 :将图像缩略图并列在一个图像画布上。
  • 通用像素失真:纠正或诱导图像失真,包括透视。
  • 形状的形态学:提取特征,描述形状和识别图像中的模式。
  • 划分图像特征。Canny边缘检测,平均移动,Hough线。
  • 电影支持:读和写数字电影工作中使用的常见图像格式。
  • 图像计算器:将一个数学表达式应用于图像或图像通道。
  • 连接部件标记:唯一地标记图像中的连接区域。
  • 离散傅里叶变换:实现正向和逆向DFT。
  • 感知散列:将视觉上相同的图像映射为相同或相似的散列–在图像检索、认证、索引或复制检测以及数字水印中很有用。
  • 复杂文本布局:双向文本支持和塑造。
  • 色彩管理:用色彩配置文件进行精确的色彩管理,或代替–根据色彩空间的要求进行内置的伽玛压缩或扩展。
  • 双边模糊:非线性的、保留边缘的、降噪的平滑过滤器。
  • 高动态范围图像:准确地表现真实场景中发现的广泛的强度水平,从最明亮的阳光直射到最深的黑暗阴影。
  • 加密或破译图像:将普通图像转换为无法理解的胡言乱语,然后再转换回来。
  • 虚拟像素支持:方便访问图像区域外的像素。
  • 大图像支持:读取、处理或写入百万、千兆或兆像素的图像尺寸。
  • 执行线程的支持。ImageMagick是线程安全的,大多数内部算法都支持 OpenMP ,以利用多核处理器芯片提供的速度优势。
  • 分布式像素缓存:将中间的像素存储卸载到一个或多个远程服务器。
  • 异构分布式处理:某些算法支持OpenCL,以利用在由CPU、GPU和其他处理器组成的异构平台上协同执行的速度优势。
  • iPhone上的ImageMagick:在你的iPhone上转换、编辑或编排图像。

下载Imagemagick

 # apt install imagemagick
# pip install wand
  

读取图像的尺寸

 >>> from wand.image import Image
>>> ny = Image(filename ='wugang.jpg')
>>> print(ny.height, ny.width)
324 550
  

将图像从jpg转换成png

 >>> ny_convert = ny.convert('png')
>>> ny_convert.save(filename ='wugang.png')
  

模糊图像

 >>> ny = Image(filename ='wugang.jpg')
>>> ny.blur(sigma = 4)
True
>>> ny.save(filename ="wugang_blur.jpg")
  

翻转图像

 >>> ny = Image(filename ='wugang.jpg')
>>> flip_ny = ny.clone()
>>> flip_ny.flip()
True
>>> flip_ny.save(filename ='flip_wugang.jpg')
  

旋转图像

 >>> ny2 = ny.clone()
>>> ny2.rotate(45)
True
>>> print(ny2.height, ny2.width)
620 620
>>> ny2.save(filename ='rotate_wugang.jpg')
  

裁剪图像

 >>> ny2 = ny.clone()
>>> ny2.crop(50, 90, 200, 300)
True
>>> ny2.save(filename = 'wugang_cropped.jpg')

  

创建边缘

 >>> ny2 = ny.clone()
>>> ny2.edge(radius = 1)
True
>>> ny2.save(filename="edge_wugang.jpg")
  

素描

 >>> ny2 = ny.clone()
>>> ny2.sketch(0.5, 0.0, 98.0)
True
>>> ny2.save(filename="wugang_sketch.jpg")
  

使用transform_colorspace()函数并传递’grey’作为参数。输出将是黑白素描。

 >>> ny2 = ny.clone()
>>> ny2.transform_colorspace('gray')
True
>>> ny2.sketch(0.5, 0.0, 98.0)
True
>>> ny2.save(filename="wugang_sketch_gray.jpg")
  

灰度素描
同样,我们还可以在图像上应用其他的特殊效果,如添加噪音、polaroid、漩涡、色调、波浪、太阳化等。

调整大小

 >>> ny2 = ny.clone()
>>> ny2.resize(200,100)
True
>>> ny2.save(filename="wugang_resize.jpg")
  

将PDF转换为图像

 from wand.image import Image

ny = Image(filename ='test.pdf')
ny_converted = ny.convert('jpg')
ny_converted.save(filename='test.pdf.jpg')

  

添加文字水印

 from wand.image import Image
from wand.drawing import Drawing
ny = Image(filename = 'wugang.jpg')
draw = Drawing()
draw.font = '/usr/share/fonts/truetype/arphic/ukai.ttc'
draw.font_size = 20
draw.text(10, 100, '武冈')
draw(ny)
ny.save(filename='text wuang.jpg')
  

文章来源:智云一二三科技

文章标题:Python使用ImageMagick进行图像处理指南

文章地址:https://www.zhihuclub.com/80041.shtml

关于作者: 智云科技

热门文章

网站地图