Frage zu annotate in package imager

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
pfischer
Beiträge: 33
Registriert: Mi Mär 29, 2017 5:31 pm

Frage zu annotate in package imager

Beitrag von pfischer »

Lieber R-Forum
ich habe ein / zwei Problem welches ich auch nach Recherche im Netz nicht lösen konnte.
Ich habe früher zur Bearbeitung von Tiff- Bildern das paket magick verwendet. Nach dem letzten Update auf package Vers. 2.75 liest dieses aber meine TIFF files nicht mehr richtig ein. Siehe Bilder Link1 (test_magick_source.tiff und test_magick_result.tiff, Bilder sind zu groß um sie als Anhang zu versenden). Dieser Fehler ist reproduzierbar. Ich bin deshalb auf package imager umgestiegen, welches die Bilder problemlos einliest.,

Dort kann ich Parameter abfragen und Modifikationen machen (resize etc. etc.) aber:

1 ) Bei Annotieren der Bilder mit dem Befehl draw_text

Code: Alles auswählen

library(imager)
img_name <-"C:/AABackup/Remos3/test.tiff"
 anno<- „testannotation“
 img <-load.image(img_name)
 img_new <- draw_text(im,10,10,anno,col="yellow", opacity = 1, fsize = 50)
 plot(im_new)
}  
bekomme ich den Fehler

Error in draw_text(im_new, 10, 10, ann_1, col = "yellow", opacity = 1, :
colour argument has wrong length
In addition: Warning message:
package ‘imager’ was built under R version 4.2.3


Mit

Code: Alles auswählen

dim(im)
[1] 4000 3000 1 4

sehe ich, dass der tiff-file (Link 2, test.tiff) offenbar 4 channels hat, was das Problem verursacht, da imager laut Doku (und source code) nur 3 Dimensionen verarbeiten kann und wenn diese Anzahl nicht stimmt eben diesen Fehler rausgibt. Das Bild hat den Farbraum sRGB der aber eigentlich auch nur 3 Dimensionen (RGB) hat. Nun meine Frage!:

1) Weiß jemand was die vierte Dimension in einem TIFfBild ist und wie man die wegbekommt oder wie man ein solches Bild trotzdem annotiert.
2) Ich finde in imager keine save.image funktion für tiff und das netz sagt man soll das package magick verwenden um die Funktionen von ImageMagic zu nutzen. Wenn ich das tue sagt mein programm mit im is not a magick object. Gibt es in imager keine save funktion für tiffs?

Herzlichen Dank für die Hilfe
Philipp
Link 1: https://we.tl/t-EtUrOg5s5w
Link 2: https://we.tl/t-xsVccaA58R
pfischer
Beiträge: 33
Registriert: Mi Mär 29, 2017 5:31 pm

Re: Frage zu annotate in package imager

Beitrag von pfischer »

Frage 1 (Reduktion von Tiff Bildern mit 4 layern auf 3) geklärt.
im Paket imageR werden Tiff Bilder als cimg objekt abgelegt. Diese können entsprechend manipuliert werden.
Um die 4.te Layer eines TIFF Bildes zu entfernen (z.B. in IR layer) kann man schreiben
object_neu <- object[,,,c(1:3)}

Die zweite Frage besteht aber nach wie vor.
Wir kann mann in imageR ein Tiff Bild sichern?
Danke
Viele Grüsse, Philipp
Antworten