/ / Scala a Spark: ako prejsť obrázkom? - scala, apache-spark

Scala a Spark: ako prejsť obraz? - scala, apache-spark

Mám nejaké binárne súbory, ktoré sú obrázkami a jaby chceli prejsť sami sebou a distribuovať pixely: každý uzol môjho klastra musí dostať RGB inej skupiny pixelov ako iné uzly a uložiť tieto RGB do zbierky Scala.

používam SparkContext::binaryFiles ale neviem, ako dosiahnuť, aby Apache Spark „dokázal pochopiť“, že používam obrázok, že by som chcel prejsť jeho pixely pomocou distribúcie a že by som chcel získať hodnoty RGB. Mohli by ste mi pomôcť urobiť to prosím?

odpovede:

5 pre odpoveď č. 1

Spark 2.3 pridal podporu pre analýzu obrázkov. Môžete čítať obrázky a získavať metaúdaje a obrazové údaje takto:

import org.apache.spark.ml.image.ImageSchema._
import java.nio.file.Paths

val images = readImages("path/to/images")

images.foreach { rrow =>
val row = rrow.getAs[Row](0)
val filename = Paths.get(getOrigin(row)).getFileName().toString()
val imageData = getData(row)
val height = getHeight(row)
val width = getWidth(row)

println(s"${height}x${width}")
}

Viac informácií nájdete tu


2 pre odpoveď č. 2

Ak máte binárne súbory, stačí ich previesť na maticu celých čísel (čo sú hodnoty RGB). Ako prevádzať obrázky do poľa RGB v Scale si prečítajte tu:

http://otfried.org/scala/image.html

Tu je príklad vykonaný v Pythone:

Iskry pomocou PySpark čítajte obrázky