利用ggseqlogo绘制seqlogo图
R语言data manipulation学习笔记之创建变量、重命名、数据融合
R语言data manipulation学习笔记之subset data
R语言可视化学习笔记之gganimate包
创建属于自己的调色板
R语言可视化学习笔记之ggridges包
Lesson 01 for Plotting in R for Biologists
本文主要简单介绍一下magick包,主要用于图像处理
#安装的话就直接从CRAN安装进行
install.packages("magick")
#Load the package
library(magick)
#查看支持哪些格式
str(magick_config())
## List of 21
## $ version :Class 'numeric_version' hidden list of 1
## ..$ : int [1:4] 6 9 9 9
## $ modules : logi FALSE
## $ cairo : logi TRUE
## $ fontconfig : logi FALSE
## $ freetype : logi TRUE
## $ fftw : logi TRUE
## $ ghostscript : logi TRUE
## $ jpeg : logi TRUE
## $ lcms : logi TRUE
## $ libopenjp2 : logi FALSE
## $ lzma : logi TRUE
## $ pangocairo : logi TRUE
## $ pango : logi TRUE
## $ png : logi TRUE
## $ rsvg : logi TRUE
## $ tiff : logi TRUE
## $ webp : logi TRUE
## $ wmf : logi FALSE
## $ x11 : logi FALSE
## $ xml : logi TRUE
## $ zero-configuration: logi FALSE
可以看出大部分格式都是支持的
读取的话可以直接从本地读取,也可以读取URL格式的图片,主要通过image_read()来读取,image_info()则可以显示图像的一些属性数据。
#读取网上随便选的图片
night_king <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/ha6Cchfk38.jpg?imageslim")
image_info(night_king)
## format width height colorspace filesize
## 1 JPEG 189 267 sRGB 6449
#通过image_write()可以讲图片以任何格式输出,比如将刚读取的图片以png格式输出。image_write(night_king, path = "night_king.png", format = "png")
通过image_convert()可以将图片转换为我们需要的格式,比如这里我们可以将night_king的格式转换为png格式
night_king.png <- image_convert(night_king, "png")
image_info(night_king.png)
## format width height colorspace filesize
## 1 PNG 189 267 sRGB 0
可以看到这里的filesize为0,直到被渲染(这里涉及到ImageMagick方面,我不是很懂)。
在RStudio中可以查看我们读取的图片
转换(transformations)
magick提供一系列函数对图片进行裁剪以及编辑,主要有以下函数:
-
image_crop(image, “100x150+50”):裁剪
-
image_scale(image, “200”):按宽比例进行放大缩小
-
image_scale(image, “x200”):按高比例进行放大缩小
-
image_fill(image, “blue”, “+100+200”):对特定部位着色
-
image_border(image, “red”, “20x10”):添加边框
下面我们来试试这些函数
#Example imagewolf <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/4h96Df21AI.png?imageslim")
print(wolf)
#Add 20px left/right and 10px top/bottom
image_border(image_background(wolf, "hotpink"), "#000080", "20x10")
#trim margins
image_trim(wolf)
image_crop(wolf, "500x300+50")
#Resize
image_scale(wolf, "300")#width:300px
#Resize
image_scale(wolf, "x300")#heigth:300px
#Rotate or mirror
image_rotate(wolf, 45)
#Flip
image_flip(wolf)
#Flop
image_flop(wolf)
#Paint
image_fill(wolf, "red", point = "+190+100", fuzz = 4000)
这个函数最难掌握,我本来是想将wolf的眼睛渲染成红色,但是不断调整point以及fuzz都没弄成,感兴趣的可以自己捣鼓捣鼓。
#Add randomness
image_blur(wolf, 10, 5)
可以通过调整参数来设置模糊度
image_noise(wolf)
#Silly filters
image_charcoal(wolf)
image_oilpaint(wolf)
image_negate(wolf)
#Add some text on the image
image_annotate(wolf, "I am the King of wolf", size=25, gravity = "southeast", color="gold")
自定义text
#customize the text
image_annotate(wolf, "I am the King", size=30, color="red", boxcolor = "pink", degrees = 45, location = "+30+30")
#Set the font times-new-roman
image_annotate(wolf, "I am the King", size=30, color="red", boxcolor = "pink", degrees = 45, location = "+30+30", font = 'times-new-roman')
你没看错,magick支持管道操作,下面试试
library(magrittr)
wolf%>%
image_rotate(270)%>%
image_background("white", flatten = TRUE)%>%
image_border("red", "10x10")%>%
image_annotate("I am the King", color='red', size = 25, location = "+100+300")
magick除了支持管道操作外,还支持图层叠加、拼图以及动图处理,来个经典的动态地球
earth <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/a9CjAEGiC5.gif")
length(earth)
print(earth)
rev(earth) %>%
image_flip() %>%
image_annotate("This is the Earth", size = 20, color = "white")
不知什么鬼,图片竟然显示出来乱的,电脑渣的话还是别搞动画
bigdata <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/JclK3efbB3.jpg?imageslim")
logo <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/JdjdB88CLm.png?imageslim")
frink <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/E5fbmb1FIb.png?imageslim")
img <- c(bigdata, logo, frink)
img <- image_scale(img, "300x300")
image_mosaic(img)
image_animate(image_scale(img, "200x200"), fps = 1, dispose = "previous")
#fps控制放映速度
静图+动图
静图就用我以前绘制过的,具体可看博客(https://ytlogos.github.io/2017/08/24/ggplot2%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E5%9B%BE%E5%BD%A2%E6%8E%92%E5%88%97/)
image1 <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/kLeL888DbI.png?imageslim")
dance_man <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/86iEDe36lf.gif")
dance_man <- image_scale(dance_man, "200")
#Background image
background <- image_background(image_scale(image1, "800"), "white", flatten = TRUE)
#Combine and flatten frames
frames <- image_apply(dance_man, function(frame){
image_composite(background, frame, offset = "+500+270")
#Turn frames into animation
animation <- image_animate(frames, fps = 10)
print(animation)
还有一些有趣的功能这里我就不讲了,有兴趣的可以试试,还是很好玩的。
SessionInfo
sessionInfo()
## R version 3.4.1 (2017-06-30)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windo
ws 10 x64 (build 15063)
## Matrix products: default
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936
## [2] LC_CTYPE=Chinese (Simplified)_China.936
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C
## [5] LC_TIME=Chinese (Simplified)_China.936
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
## other attached packages:
## [1] magrittr_1.5 magick_1.2
## loaded via a namespace (and not attached):
## [1] compiler_3.4.1 backports_1.1.0 rprojroot_1.2 tools_3.4.1
## [5] htmltools_0.3.6 curl_2.8.1 yaml_2.1.14 Rcpp_0.12.12
## [9] stringi_1.1.5 rmarkdown_1.6 knitr_1.17 stringr_1.2.0
## [13] digest_0.6.12 evaluate_0.10.1
往期精彩内容整理合集
2017年R语言发展报告(国内)
R语言中文社区历史文章整理(作者篇)
R语言中文社区历史文章整理(类型篇)
公众号后台回复关键字即可学习
回复
R
R语言快速入门及数据挖掘
回复
Kaggle案例
Kaggle十大案例精讲(连载中)
回复
文本挖掘
手把手教你做文本挖掘
回复
可视化
R语言可视化在商务场景中的应用
回复
大数据
大数据系列免费视频教程
回复
量化投资
张丹教你如何用R语言量化投资
回复
用户画像
京东大数据,揭秘用户画像
回复
数据挖掘
常用数据挖掘算法原理解释与应用
回复
机器学习
人工智能系列之机器学习与实践
回复
爬虫
R语言爬虫实战案例分享
1. 安装依赖
$ sudo apt-get install libpng12-dev libglib2.0-dev zlib1g-dev libbz2-dev libtiff5-dev libjpeg8-dev
2. 下载并解压
$ wget http://www.image
magick
.org/download/Image
Magick
.tar.gz
$ tar -xzv
RMagic安装手记:
$ sudo apt-get install image
magick
$ sudo gem install r
magick
--include-dependencies
出现“configure: error: Can't install R
Magick
. Can't find
Magick
-config or Graphics
Magick
-config prog
最新的
magick
包
是为在R中更现代、更简单高质量的进行图片处理而进行的一次努力。该
包
封装了目前最强大的开源图片库Image
Magick
STL。
Image
Magick
库拥有大量的功能,目前的
magick
版本实现了其中一些很适用的功能模块,但是因为是第一次发布,现在文档还比较少。本文简单的介绍了其中一些最重要的概念来帮助了解
magick
。
安装
magick
在windows或者OS-X系...
> mkdir /dowload
> cd /download
> wget ftp://ftp.graphics
magick
.org/pub/Graphics
Magick
/Graphics
Magick
-LATEST.tar.gz
> tar -xzvf Graphics
Magick
-LATEST.tar.gz
> cd Graphics
Magick
-1.3.21 (or the lastest graphics
常见语言都有简单的
图像处理
库,我知道java、python等都有。这些库一般比较简单,方便在对应的语言下进行简单的
图像处理
。另外,一些需要
图像处理
的芯片也会实现自己独立的
图像处理
库。
在
学习
工作过程中,我一般使用matlab、
magick
、opencv进行
图像处理
(opengl一般进行图形处理)。
matlab是一个非常强大的软件,
包
含很多数学处理基础,
图像处理
,模式识别,信号处理等,和数学沾
一、可以组合多个
图像处理
操作以生成复杂的结果:
magick
-size 320*85 canvas:none -font Bookman-DemiItalic -pointsize 72 \
-draw "text 25,60\'
Magick
\'" -channel RGBA -blur 0*6 -fill darkred -stroke ma...
L1以及L1 magic是指L1范数最小化问题,也叫做Lasso问题。在机器
学习
和统计推断中,L1范数最小化是一种常用的优化方法。
L1范数是指向量中各个元素的绝对值之和。L1范数最小化的目标是找到一个稀疏解,即仅有少数非零项的解。这在特征选择、信号处理以及统计推断中都是非常有用的。
L1 magic则是一个软件工具
包
,用于求解L1范数最小化问题。它使用迭代软阈值算法(iterative soft-thresholding algorithm)来求解最优解。通过迭代,L1 magic能够找到逼近最优解的稀疏解。
L1 magic的功能
包
括:
1. 求解稀疏优化问题:L1 magic可以使用L1范数最小化来求解具有稀疏解的优化问题,例如最小二乘问题或卡尔曼滤波问题。
2. 特征选择:L1 magic可以用于选择具有最强预测能力的特征,即找到那些与目标变量高度相关的特征。
3. 信号恢复:L1 magic可以用于恢复被噪声污染的信号,通过对信号的稀疏表示进行最优化来去除噪声。
4. 压缩感知:L1 magic可以用于压缩感知理论中的信号重构问题,通过在测量过程中进行稀疏表示,从少量的测量中恢复出完整的信号。
总之,L1 magic是一个功能强大的工具,通过L1范数最小化解决了稀疏优化问题,在特征选择、信号处理和压缩感知等领域发挥着重要的作用。
### 回答2:
l1magic是一种用于信号处理和机器
学习
的算法,可以实现数据压缩和特征选择的功能。
首先,l1magic可以用于信号处理领域的数据压缩。在信号处理中,信号通常以高维的形式存在,而许多信号维度对应的信息是冗余或不重要的。l1magic利用l1范数最小化的原则,可以将信号稀疏表示,去除冗余信息并保留主要特征,从而可以大大减小信号所占用的存储空间。这种信号压缩技术有助于减小数据量,提高传输效率和存储效率。
其次,l1magic还可应用于机器
学习
中的特征选择。在机器
学习
任务中,选择合适的特征对于提高模型的性能和解释能力非常重要。l1magic可以通过最小化l1范数的方法,将不重要的特征系数收缩至零,从而实现特征选择的过程。这种方法可以避免过度拟合的问题,提高模型的泛化能力和计算效率,并且可以解释和理解模型选择了哪些特征来进行预测。
综上所述,l1magic具有信号压缩和特征选择的功能。它在信号处理和机器
学习
领域有着广泛的应用,可以提高数据的效率和质量,并且有助于进一步的数据分析和建模工作。
### 回答3:
l1magic是一种数学算法,用于解决信号和图像恢复问题。它的主要功能是通过最小化L1范式来恢复稀疏信号。
稀疏信号是指信号中只有很少非零元素的情况。l1magic算法利用这一特点,通过优化问题的求解,找到最优的稀疏表示。
具体地说,l1magic算法通过最小化L1范式作为优化目标。L1范式是指向量各个元素的绝对值之和。相比于L2范式(即向量的平方和),L1范式可以更好地保持信号的稀疏性。
l1magic算法适用于不同的信号和图像恢复问题,如压缩感知、图像去噪、图像插值等。它在
图像处理
领域具有广泛的应用,可以用于提高图像质量、减少数据传输量等方面。
总之,l1magic是一种用于信号和图像恢复问题的数学算法。它通过最小化L1范式来恢复稀疏信号,具有广泛的应用领域,可以提高图像质量和减少数据传输量。