目录

  • lena-数字图像处理的趣闻轶事
    • 来源
    • 与playboy的版权问题
    • 流行原因
  • 数字图像类型--图像存储风格
    • 位图
      • 视觉质量
        • colorspace
        • profile
        • quality
        • depth
        • color channel
        • alpha channel
      • 格式介绍
        • JPEG
        • PNG
        • GIF
        • TIFF
        • PSD/PSB
        • BMP
        • WebP
    • 矢量图
    • IM的应用 - 为正确的工作使用正确的工具
      • crop
      • resize
        • 等比缩放
        • 固定宽高缩放
      • draw
        • 文本text
        • 线条line
        • 矩形rectangle
        • 圆circle、ellipse
      • watermark
        • 图片水印
        • 文字水印
      • mpr(Memory Program Register)

lena-数字图像处理的趣闻轶事

先看图,原图有点sexy

原图: http://www.lenna.org/full/l_hires.jpg

来源

1972年11月出版的Playboy的中间插页,最畅销的一期,她之前是瑞典的的模特。

1973年6月,美国南加州大学的一名教授- William K. Pratt威廉·k·普拉特博士,想找一幅图像来做图像压缩的测试,厌倦手头的繁杂照片,需要让人眼前一亮的照片,正好有人在看杂志,他偶然看见了,就截取了一部分,从此,这幅512*512的经典图像就诞生了。

与playboy的版权问题

20年后才发现并维权,但以喜剧收场。

46年后对比图:

流行原因

测试样图

(1)鉴别度高,该图适度的混合了细节、平滑区域、阴影和纹理,从而能很好的测试各种图像处理算法。

(2)Lena是个美女,对于图像处理界的研究者(大部分都是男性)来说,美女图可以有效的吸引他们来做研究,让人赏心悦目。

数字图像类型–图像存储风格

包括位图和矢量图

位图

矢量图 -通俗一点来讲就是很多人常说的放大不模糊的特点

位图

  1. 使用彩色像素阵列存储和处理的图像,最小单位由像素构成的图,只有点的信息,每个像素都分配有特定的位置和颜色值,缩放时会失真;
  2. 图形面积越大,文件的字节数越多,文件的色彩越丰富,文件的字节数越多;
  3. 图像可以由代表不同颜色的多个通道组成,并且在一个图像文件格式文件中可以有多个图像、图层或帧(取决于用途);
  4. 格式: GIF、PNG、JPEG、TIFF、BMP、WebP。

真实性、透明性、矢量性

  1. 真实性就是色彩度、位深、损耗(压缩)等;(jpg、jpeg、gif、tiff、bmp)
  2. 透明性就很明显了,就是支技透明的特性,但这里也有一个就是位深,他会影响透明度的深度png8与png24的差异就在这里;(png)
  3. 特殊动画,就是支持帧的特点,可以做成动画;(gif)
视觉质量
colorspace

sRGB --standard 微软惠普推出,目的是让外部设备与应用软件共通,应用最广泛;和RGB区别主要在于厂家、色域范围和适用人群方面不同

RGB – Adobe推出,艺术创作,色域更加丰富

CMYK – 印刷,比RGB颜色暗淡一些

aRGB VS sRGB

profile
  • EXIF 相机相关元数据,如品牌、光圈、快门
  • ICC 图像颜色空间配置信息 RGB sRGB CMYK
  • IPTC 图像的标识属性,如标题、署名、作者、关键字等图片和作者信息
  • 8BIM ps元数据配置信息

IM通过-profile + 配置文件来增加, +profile来删除,删除后图片会变小,但效果看起来差不多,对于一些需要极限压缩的,这些profile信息没必要可以删除

quality
  • 对JPEG而言,图片质量在1~100,如果不指定图片质量,默认92,如png转jpg后不指定图片质量默认92;当质量小于90时,会进行色度二次采样,4:4:2 -> 4:4:0
  • 保存时会降低质量保存,在内存中和最终保存的不一致,特定像素和区域处理后的与保存的也有所不同,尤其是在边缘区域

对于IM处理过程中避免质量降低的方案:

  • 不以JPEG作为中间图像,而作为最终保存图像
  • 处理过程中强制指定图片质量

质量对比:q99 vs q85 vs q75

depth

8只、24只蜡笔绘制日落的例子来理解

常见的是8bitdepth,使用2^8-1的值来保存颜色,即0-255,8bit/pixel
8bit 三通道约有1680万种颜色 10bit 三通道约有10.7亿种

color channel

保存图像颜色信息的通道称为颜色通道,每个颜色通道都存放着图像中颜色元素的信息,所有颜色通道中的颜色叠加混合产生图像中像素的颜色,相当于调色板几种颜色混合在一起产生一种新颜色。

单个颜色通道8bit
三个颜色通道3x8bit RGB
三个颜色通道+alpha通道 4x8bit RGBA

alpha channel

表示颜色透明度与不透明度,用于确定一个像素叠加到另一个像素如何呈现
0.0-1.0、0%-100%或1-255表示,8bit的就是RGBA, 1bit就是gif或PNG8的透明表示,即布尔透明

格式介绍
JPEG

.jpg .jpeg
压缩标准或者文件格式

有损压缩,因为使用有损压缩的一个关键原则是:人类的感知能力并没有计算机那么精确;
舍弃掉人眼根本无法感知的颜色信息,以使文件尽可能小并且细节不丢失,相对而言质量要比PNG、BMP质量低些,但是加载速度快

不处理透明度
有损压缩,图片数据丢失,图片会失真
IM中图片质量和文件大小不会完全匹配

PNG

.png
支持透明、半透明、不透明
无损压缩
PNG图片多用于网页中的图标设计

特点:

  • PNG同时还支持真彩和灰度级图像的Alpha通道透明度
  • 最高支持24位真彩色图像以及8位灰度图像
  • 支持Alpha通道的透明/半透明特性
  • 支持图像亮度的Gamma校准信息
  • 支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息
GIF

.gif
此格式旨在最终取代旧格式,如 GIF 和 TIFF,相对较新
特点:单通道、8位深、256种颜色、布尔(开/关)透明度会出现锯齿
相对较小,多用于卡通动画、logo图标等

TIFF

.tif .tiff
标签图像文件格式
特点:是一种灵活的位图格式,和PSD类似,主要用来存储包括照片和艺术图在内的图像,存贮多达24个通道的信息,它所包含的有关的图形信息最全;
TIFF文件,用于欣赏、打印和继续修改,JPEG用于分享

PSD/PSB

.psd .psb
PSD是Photoshop Document的缩写,简而言之,就是Photoshop原生的文件储存格式,用于保存Photoshop修改后的文件
可以保存图层、alpha通道、蒙版的具体操作步骤
缺点不能超过2G

BMP

.bmp
bitmap WindowsOS中标准图像文件格式
图像深度depth可选,1bit、4bit、8bit、24bit
除了图像深度可选,不采用其他压缩,所以BMP文件占用空间大

WebP

.webp
google的,JPEG 的升级版,由于传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间而产生;
WebP 图片格式能够进行帧内压缩,或者更确切地说,能将视频的每个帧都被压缩,再压缩帧与帧之间的差异。

优点:更优的图像压缩算法,带来更小的体积,同等质量下,web能够减少40%的体积,意味如果Google让WebP格式得到普及的话,浏览网页的速度将大幅提升。
缺点: 支持度低,下载下来的WebP图片无法通过常规软件编辑、浏览。

矢量图

  1. 图像是根据线条、粗细、平铺、渐变等复合对象来定义的,与像素无关;
  2. SVG、Postscript、PDF、FIG、DXF、WMF,TTF字体;
  3. 调整图像大小而不会失真。

IM的应用 - 为正确的工作使用正确的工具

IM是光栅图像处理器,对于矢量图不能够很好的支持,可以通过内部相互转化,但是IM 基本上会以当前定义的分辨率或密度对该图像进行光栅化,换句话说,IM 的任何输出都不会是真正的矢量格式。

基本操作,采用src.jpg是lena原图:

crop

convert通过crop参数裁剪图片,格式为:

convert 原始图片 -crop widthxheight+X+Y 目标图片

具体指令如下:

convert src.jpg -crop 100x100+10+5 crop1.jpg

convert src.jpg[100x100+10+5] crop1.jpg

上面两个指令效果相同,都是在src图片上裁剪一个100x100大小的图片,开始坐标为(10,5)

通过gravity可以选择裁剪的相对位置,即坐标原点。

convert src.jpg -gravity center -crop 100x80+0+0 crop2.jpg

convert src.jpg -gravity southeast -crop 100x80+10+5 crop2.jpg

gravity的值包括:center、south、north、east、west、southeast、southwest、northeast、northwest。如果使用gravity,把其设置center,即把中心作为坐标的原点,那么根本不需要计算起始坐标点,ImageMagicK会自动把小图片放置在背景的正中央位置,-geometry默认是+0+0。gravity不仅影响父元素的坐标系统**,而且子元素的重心点(或者叫参照点)也随之改变**。举例来说,当gravity值为southeast,父元素的坐标原点变为右下角了,x轴方向是从右到左,y轴方向从下到上;子元素重心点也是右下角,所以geometry设置的坐标点就是子元素的右下角相对父元素右下角的位置。gravity会影响通过geometry、annotate、region等来定义坐标点。

resize

convert通过resize参数裁剪图片

等比缩放

convert -resize 200x100 src.jpg resize1.jpg

把原图等比缩放为200x100的图片,但是dest.jpg不一定为200x100,因为等比缩放,dest.jpg图片大小取决于原始图比例。原则是缩放后的尺寸最少有一个符合指定宽高,且另外一边不能大于指定的参数中的宽或高,另外也可以只指定宽或高来进行缩放,缩放后和原图比例相同相同

固定宽高缩放

像素后面加!,相当于强制缩放。

convert -resize 200x100! src.jpg resize2.jpg

draw

convert通过draw可以在已有的图片上绘制一些文字、线条、形状等。可能会用text、line、rectangle、roundRectangle、circle、ellipse等。

文本text

基本命令格式:convert 原图片 -draw “text x坐标,y坐标 ‘文本信息’” 结果图片,另外还可有一些参数是可以设置的,比如字体,字体大小,字体颜色已经重新定义坐标原点。

convert src.jpg -gravity southwest -fill red -pointsize 30 -draw "text 10,10 '121212'" draw_text.jpg'

线条line

基本命令格式:convert 原图片 -draw “line 起点x坐标,起点y坐标 终点x坐标,终点y坐标’” 结果图片,可以使用的参数有-stroke 来指定线条的颜色,-strokewidth 指定线的宽度。

convert src.jpg -stroke red -strokewidth 4 -draw "line 10,10 200,200 " draw_line.jpg

矩形rectangle

rectangle绘制直角矩形 ,-stroke 来指定线条的颜色,-strokewidth 指定线的宽度, -fill指定填充颜色,可用none设置为不填充颜色,Rectangle 与roundRectangle 后第一组参数是确定矩形左上角的坐标,第二组是确定右下角的坐标,roundRectangle的第三组参数是确定圆角的幅度,如果是0,0话,就是直角,所以可以直接用roundRectangle 来代替Rectangle 。

convert src.jpg -stroke red -strokewidth 2 -fill none -draw "rectangle 100,100 500,400" draw-rect1.jpg

roundRectangle绘制圆角矩形

convert src.jpg -stroke red -strokewidth 2 -fill white -draw "roundRectangle 100,100 500,400 10,10" draw_rect2.jpg

圆circle、ellipse

同矩形一样,参数-stroke 来指定边框的颜色,-strokewidth 指边框的宽度,-fill填充颜色,可以用none设置为不填充任何颜色。circle和ellipse中的第一组参数都是代表圆心的坐标;但是他们第二组参数含义不同,circle的第二组参数是圆的任何一边缘坐标,所以圆的半径就是两组坐标的距离,ellipse的第二组参数中的第一个是横向的最大长度、第二个是纵向最大高度;第三组参数是绘制的区间,区间是0~360度,0度是原点开始到从左到右,度数是顺时针方向。有了这个参数就可以很容易绘制半圆,1/4圆,乃至圆的任何一部分,所以ellipse比circle的功能更加强大

convert src.jpg -stroke black -strokewidth 1 -fill '#00CED1' -draw "circle 250,250 250,300" draw_circle.jpg

convert src.jpg -stroke black -strokewidth 1 -fill green -draw "ellipse 250,250 50,50 0,360" draw_ellipse1.jpg

以上两个命令对同一张图而言绘制的圆大小完全一样

convert src.jpg -stroke black -strokewidth 1 -fill green -draw "ellipse 250,250 50,150 0,360" draw_ellipse2.jpg

convert src.jpg -stroke black -strokewidth 1 -fill green -draw "ellipse 250,250 50,150 0,200" draw_ellipse3.jpg

watermark
图片水印

convert src.jpg crop2.jpg -gravity southeast -geometry +5+10 -composite watermark.jpg

文字水印

和绘制文本一样
convert src.jpg -gravity southeast -fill yellow -pointsize 25 -draw "text 10,10 'http://www.lenna.org/full/l_hires.jpg'" watermark_text.jpg

mpr(Memory Program Register)

mpr将整个图像写入命名的内存寄存器中,以后可以从中读取图像数据而不用重新从磁盘中读取,对于复杂的图像操作尤为重要;

好处:

  • 避免了多次保存图片导致质量降低
  • 避免了多次从磁盘读取产生的大量IO

格式 mpr:{label} ,label可以随意命名,就是一个标签;
convert src.jpg -resize 1000x1000 -write mpr:hh +delete mpr:hh -strip -crop 800x800+100+100 resize_crop.jpg
+delete删除当前图像序列中的最后一个图像,这里就是src。

图像基础ImageMagick图像处理相关推荐

  1. OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并

    OpenCV与图像处理学习一--图像基础知识.读入.显示.保存图像.灰度转化.通道分离与合并 一.图像基础知识 1.1 数字图像的概念 1.2 数字图像的应用 1.3 OpenCV介绍 二.图像属性 ...

  2. 数字图像处理之图像基础

    最近在学数字图像处理,图像基础包括以下部分: 导入库 import numpy as np import matplotlib.pyplot as plt import cv2 as cv 图片展示函 ...

  3. 数字图像处理-图像基础-复习总结

    文章目录 数字图像处理复习总结 数字图像基础 数字图像基础概念 采样和量化 非均匀采样与量化 数字图像常见失真类型 数字图像处理基础 数字图像处理基本概念 数字图像处理研究内容 数字图像处理关键阶段 ...

  4. 《opencv 数字图像处理 图像基础》

    <opencv 数字图像处理 图像基础> 矩阵 通道分离和合并 彩色图像转灰度图像 灰度图转二值化图像 图像运算 矩阵 定义一个显示图像的函数,对于灰度图,里面添加了vmin=0,vmax ...

  5. 计算机视觉————(CV)图像基础以及数字图像处理基础

    1.数字图像 客观世界中,以自然形式呈现出的图像通常称作物理图像,也叫做连续图像,图像信号值是连续变化的.因为计算机只可以识别离散数字,因此物理图像需要经过处理转化为数字形式,即数字图像,才可以使用. ...

  6. 【Matlab 图像】图像基础操作

    图像基础操作 读取图片 读取视频 读取图片 % 读取图像 Img = imread('test2.png'); subplot(2,2,1); imshow(Img); title('原图(RGB图) ...

  7. 【AI白身境】深度学习必备图像基础

    文章首发于微信公众号<有三AI> [AI白身境]深度学习必备图像基础 今天是新专栏<AI白身境>的第四篇,所谓白身,就是什么都不会,还没有进入角色. 我们已经说了linux基础 ...

  8. 视觉SLAM笔记(24) 图像基础操作

    视觉SLAM笔记(24) 图像基础操作 1. OpenCV 2. 操作图像 3. 操作效果 1. OpenCV OpenCV提供了大量的开源图像算法,是计算机视觉中使用极广的图像处理算法库 在使用之前 ...

  9. 图像基础知识学习笔记

    图像基础知识学习笔记 文章目录 图像基础知识学习笔记 前言 一.图像基础知识相关笔记 1.光学系统影响图像的结构主要包括什么? 2.常见噪声都有什么,其分类,及特点? 3.光圈,快门,景深? 4. I ...

  10. Qt 2D绘图(5):绘制图像基础

    Qt 2D绘图(5):绘制图像基础 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) 本文出自本人原创著作<Qt5.10 GUI完全参考手册>网盘地址: ht ...

最新文章

  1. 马云自嘲只会用电脑收发邮件,网友:马老师的话,听听就行了
  2. 在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
  3. android 图片处理过程中添加进度条,『Android自定义View实战』给我一个图标,还你一个水波纹进度球...
  4. Lesson 16.6Lesson 16.6 复现经典架构:LeNet5 复现经典架构 (2):AlexNet
  5. umask 和 新建文件、目录的默认权限
  6. 11-直接内存 Direct Memory
  7. linuxMint下安装ftp工具--filezilla
  8. 图论 Make Unique:有向图和无向图的一些算法
  9. PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)
  10. WPF与输入法冲突研究之三:韩文输入法在不同平台,WinForm/WPF下的区别
  11. Pyspark:电影推荐
  12. 使用librdkafka
  13. AlphaGo来了,终结者不远了
  14. php微信转发无法显示标题图片,完美解决:微信分享为什么不显示图片呢? - 老牛博客...
  15. css3动态渐变动画
  16. webpack中对CSS压缩
  17. word查找参考文献引用格式
  18. redirect-重定向
  19. 李宏毅DLHLP.09.Voice Conversion.1/2. Feature Disentangle
  20. 你知道 BI 是什么吗?关于 BI 系统的概述

热门文章

  1. 计算机鼠标双击怎么,解决方案:解决鼠标双击问题的方法(最全面,最实用)_计算机基础知识_IT /计算机_信息...
  2. 关于CWMP基础(二)----TR069通信流程
  3. Unity3D游戏开发,适配阿拉伯地区文本显示
  4. 元宇宙势不可挡,facebook已更名Meta,前端人又能做什么?
  5. PHP生成二维码与识别二维码,jq生成二维码
  6. 白帽子讲Web安全——世界观安全
  7. 安装虚拟机不支持i686 cpu的解决办法
  8. SQL注入语句(详细)
  9. MAC苹果电脑装单win10系统
  10. IntelliJ IDEA使用教程 (总目录篇)