五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

R語言高級圖像處理

2020-12-24 15:48 作者:拓端tecdat  | 我要投稿

原文http://tecdat.cn/?p=3431

?

ImageMagick庫具有大量功能。本文簡要介紹了最重要的入門概念。

安裝?magick

在的Windows或OS-X上,通過CRAN最容易安裝軟件包。

install.packages("magick")

二進制CRAN包開箱即用。

library(magick)

  1. ## Linking to ImageMagick 6.9.9.39

  2. ## Enabled features: cairo, fontconfig, freetype, lcms, pango, rsvg, webp

  3. ## Disabled features: fftw, ghostscript, x11

str(magick::magick_config())
  1. ## List of 21

  2. ## ?$ version ? ? ? ? ? :Class 'numeric_version' ?hidden list of 1

  3. ## ? ..$ : int [1:4] 6 9 9 39

  4. ## ?$ modules ? ? ? ? ? : logi FALSE

  5. ## ?$ cairo ? ? ? ? ? ? : logi TRUE

  6. ## ?$ fontconfig ? ? ? ?: logi TRUE

  7. ## ?$ freetype ? ? ? ? ?: logi TRUE

  8. ## ?$ fftw ? ? ? ? ? ? ?: logi FALSE

  9. ## ?$ ghostscript ? ? ? : logi FALSE

  10. ## ?$ jpeg ? ? ? ? ? ? ?: logi TRUE

  11. ## ?$ lcms ? ? ? ? ? ? ?: logi TRUE

  12. ## ?$ libopenjp2 ? ? ? ?: logi TRUE

  13. ## ?$ lzma ? ? ? ? ? ? ?: logi TRUE

  14. ## ?$ pangocairo ? ? ? ?: logi TRUE

  15. ## ?$ pango ? ? ? ? ? ? : logi TRUE

  16. ## ?$ png ? ? ? ? ? ? ? : logi TRUE

  17. ## ?$ rsvg ? ? ? ? ? ? ?: logi TRUE

  18. ## ?$ tiff ? ? ? ? ? ? ?: logi TRUE

  19. ## ?$ webp ? ? ? ? ? ? ?: logi TRUE

  20. ## ?$ wmf ? ? ? ? ? ? ? : logi FALSE

  21. ## ?$ x11 ? ? ? ? ? ? ? : logi FALSE

  22. ## ?$ xml ? ? ? ? ? ? ? : logi TRUE

  23. ## ?$ zero-configuration: logi TRUE

從源構(gòu)建

sudo apt-get install libmagick++-devsudo yum install ImageMagick-c++-devel

要在OS-X上從源代碼安裝,您需要imagemagick@6自制軟件。

  1. brew reinstall imagemagick@6 --with-fontconfig --with-librsvg

  2. brew link --force imagemagick@6

自制軟件中的默認imagemagick配置會禁用一系列功能。

圖像IO

?

讀和寫

可以使用帶有圖像數(shù)據(jù)的文件路徑,URL或原始向量直接讀取圖像image_read。該image_info函數(shù)顯示了一些關(guān)于圖像的元型態(tài)數(shù)據(jù),類似于ImageMagick的??identify命令行實用程序。


  1. print(tiger)

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 400 ? ?400 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?

使用我們image_write以任何格式將圖像導出到磁盤上的文件或內(nèi)存中。

image_write(tiger, path = "tiger.png", format = "png")

?

轉(zhuǎn)換格式

Magick以原始格式將圖像保存在內(nèi)存中。要指定為轉(zhuǎn)換格式其他的format參數(shù)image_write。在應(yīng)用轉(zhuǎn)換之前,您還可以在內(nèi)部將圖像轉(zhuǎn)換為其他格式。如果您的原始格式有損,這可能很有用。

  1. tiger_png <- image_convert(tiger, "png")

  2. image_info(tiger_png)

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 400 ? ?400 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?

在Linux的上,您使用image_display在X11窗口中預(yù)覽圖像。

  1. # X11

  2. image_display(tiger)


  3. # 依賴系統(tǒng)

  4. image_browse(tiger)

另一種方法是將圖像轉(zhuǎn)換為光柵對象并將其繪制在R的圖形顯示上。

轉(zhuǎn)換

下面舉幾個例子來了解。

剪切和編輯

轉(zhuǎn)換一些函數(shù)采用一個geometry參數(shù),該參數(shù)需要表單的特殊語法,AxB+C+D。其中每個元素都是可選的一些例子:

  • image_crop(image, "100x150+50"):裁剪width:100px并從左側(cè)height:150px開始+50px

  • image_scale(image, "200"):按比例調(diào)整寬度:200px

  • image_scale(image, "x200"):按比例調(diào)整高度:200px

  • image_fill(image, "blue", "+100+200"):從藍點開始填充x:100, y:200

  • image_border(frink, "red", "20x10"):添加左側(cè)+右側(cè)20像素和頂部+底部10px的的邊框

print(frink)

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 220 ? ?445 ? ? ? sRGB ?TRUE ? ?73494 ? 72x72

image_border(image_background(frink, "hotpink"), "#000080", "20x10")

image_trim(frink)

image_crop(frink, "100x150+50")

image_scale(frink, "300") # width: 300px

?

image_scale(frink, "x300") # height: 300px






image_fill我們可以填補像素point。fuzz參數(shù)允許填充具有相似顏色的像素。它的值必須在0到256 ^ 2之間。

過濾器和效果

?

image_noise(frink)



內(nèi)核卷積

image_convolve()函數(shù)在圖像上應(yīng)用內(nèi)核卷積意味著使用內(nèi)核矩陣中定義的加權(quán)鄰域來重新計算每個像素值例如:

  1. kern <- matrix(0, ncol = 3, nrow = 3)

  2. kern[1, 2] <- 0.25

  3. kern[2, c(1, 3)] <- 0.25

  4. kern[3, 2] <- 0.25

  5. kern

  1. ## ? ? ?[,1] [,2] [,3]

  2. ## [1,] 0.00 0.25 0.00

  3. ## [2,] 0.25 0.00 0.25

  4. ## [3,] 0.00 0.25 0.00

此內(nèi)核將每個像素更改為其水平和垂直相鄰像素的平均值,這會在下面的右側(cè)圖像中產(chǎn)生輕微的模糊效果:

  1. img <- image_resize(logo, "300x300")

  2. img_blurred <- image_convolve(img, kern)

  3. image_append(c(img, img_blurred))

使用標準內(nèi)核


文本注釋

最后,在圖像上輸出一些文本會很有用:

image_annotate(frink, "I like R!", size = 70, gravity = "southwest", color = "green")


image_annotate(frink, "The quick brown fox", font = 'Times', size = 30)

支持的大多數(shù)平臺上的字體包括"sans","mono","serif","Times","Helvetica""Trebuchet","Georgia","Palatino""Comic Sans"。

結(jié)合管道

圖像每個函數(shù)變換不會影響原始圖像。

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 220 ? ?445 ? ? ? sRGB ?TRUE ? ?73494 ? 72x72

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 100 ? ?202 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

組合轉(zhuǎn)換:

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 465 ? ?240 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

使用magrittr管道語法使其更具可讀性

圖像矢量

以上示例涉及單個圖像。然而,magick中的所有函數(shù)都已經(jīng)過矢量化,以支持使用圖層,合成或動畫。

?

  1. image_scale("200x") %>%

  2. image_quantize(128)


  3. length(earth)

## [1] 44

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

  3. ## 2 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

  4. ## 3 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

  5. ## 4 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

  6. ## 5 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

  7. ## 6 ? ?GIF ? 200 ? ?200 ? ? ? ?RGB FALSE ? ? ? ?0 ? 72x72

?

圖層

我們可以像在Photoshop中中一樣將圖層堆疊在一起:

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? JPEG ? 300 ? ?225 ? ? ? sRGB FALSE ? ? ? ?0 ? 72x72

  3. ## 2 ? ?PNG ? 300 ? ?232 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  4. ## 3 ? ?PNG ? 148 ? ?300 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?


結(jié)合

附加簡單地將框架彼此相鄰:

用于stack = TRUE將它們放在彼此的頂部:

?

網(wǎng)頁

在閱讀PDF文檔時,每個頁面都成為向量的元素。

  1. ## ? ?format width height colorspace matte filesize density

  2. ## 1 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  3. ## 2 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  4. ## 3 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  5. ## 4 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  6. ## 5 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  7. ## 6 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  8. ## 7 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  9. ## 8 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  10. ## 9 ? ? PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  11. ## 10 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  12. ## 11 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  13. ## 12 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  14. ## 13 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  15. ## 14 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  16. ## 15 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  17. ## 16 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  18. ## 17 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  19. ## 18 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  20. ## 19 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  21. ## 20 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  22. ## 21 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  23. ## 22 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  24. ## 23 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  25. ## 24 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  26. ## 25 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  27. ## 26 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  28. ## 27 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  29. ## 28 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  30. ## 29 ? ?PNG ? 612 ? ?792 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?

動畫

我們也可以在動畫中制作幀,而不是將矢量元素視為圖層。

創(chuàng)建33變形一系列n圖像,逐漸將一個圖像變換為另一個圖像。

如果您讀入現(xiàn)有的GIF或視頻文件,則每個幀都會成為一個圖層:

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  3. ## 2 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  4. ## 3 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  5. ## 4 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  6. ## 5 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  7. ## 6 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  8. ## 7 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  9. ## 8 ? ?GIF ? 150 ? ?148 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

操縱各個幀并將它們放回動畫中:

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  3. ## 2 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  4. ## 3 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  5. ## 4 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  6. ## 5 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  7. ## 6 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  8. ## 7 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  9. ## 8 ? ?gif ? 200 ? ?155 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

動畫可以保存為MPEG文件的GIF:

繪圖和圖形

該軟件包的它產(chǎn)生一個magick圖像對象。

圖形設(shè)備

image_graph()功能打開一個類似于png()或新的圖形設(shè)備x11()。它返回將要寫入繪圖的圖像對象。

我們可以使用常規(guī)圖像操作輕松地對圖形進行后處理。

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 400 ? ?400 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?

繪圖設(shè)備

使用圖形設(shè)備的另一種方式是使用像素坐標在現(xiàn)有圖像上繪制。

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 220 ? ?445 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

?

默認情況下,image_draw()將所有邊距設(shè)置為0,并使用圖形坐標匹配圖像大?。ㄒ韵袼貫閱挝唬▽挾萖高度),其中(0,0)是左上角。

動畫圖形

圖形設(shè)備支持多個幀,可以輕松創(chuàng)建動畫圖形。下面的代碼顯示了如何使用magick圖形設(shè)備從gganimate包中實現(xiàn)該示例。

  1. ## ? ?format width height colorspace matte filesize density

  2. ## 1 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  3. ## 2 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  4. ## 3 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  5. ## 4 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  6. ## 5 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  7. ## 6 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  8. ## 7 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  9. ## 8 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  10. ## 9 ? ? gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  11. ## 10 ? ?gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  12. ## 11 ? ?gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

  13. ## 12 ? ?gif ? 600 ? ?340 ? ? ? sRGB ?TRUE ? ? ? ?0 ? 72x72

要將其寫入文件,您只需執(zhí)行以下操作:

?

OCR文本提取

該軟件包的最新成員是使用OCR從圖像中提取文本:

  1. ## ? format width height colorspace matte filesize density

  2. ## 1 ? ?PNG ? 640 ? ?480 ? ? ? sRGB ?TRUE ? ?23359 ? 72x72

非常感謝您閱讀本文,有任何問題請在下面留言!

?

最受歡迎的見解

1.使用opencv在python中進行圖像處理的簡介

2.matlab中的偏最小二乘回歸(plsr)和主成分回歸(pcr)

3.matlab中使用vmd變分模態(tài)分解

4.matlab使用hampel濾波去除異常值

5.matlab使用經(jīng)驗?zāi)J椒纸鈋md-對信號進行去噪

6.matlab中的偏最小二乘回歸(plsr)和主成分回歸(pcr)

7.matlab使用copula仿真優(yōu)化市場風險

8.r語言高級圖像處理

9.matlab實現(xiàn)mcmc的馬爾可夫切換arma-garch模型估計

?


R語言高級圖像處理的評論 (共 條)

分享到微博請遵守國家法律
贵州省| 舟山市| 多伦县| 儋州市| 禹州市| 松阳县| 武定县| 苍梧县| 凯里市| 奎屯市| 琼中| 龙口市| 曲阳县| 长治县| 公安县| 平舆县| 玉龙| 绿春县| 法库县| 会理县| 屏东市| 资源县| 通化县| 吴忠市| 米泉市| 白银市| 小金县| 敖汉旗| 东明县| 山阴县| 桦川县| 如皋市| 年辖:市辖区| 叶城县| 那坡县| 南宫市| 洛浦县| 霍州市| 闸北区| 弋阳县| 兴化市|