Github user tomasatdatabricks commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20168#discussion_r161903575
  
    --- Diff: mllib/src/main/scala/org/apache/spark/ml/image/ImageSchema.scala 
---
    @@ -37,20 +37,67 @@ import org.apache.spark.sql.types._
     @Since("2.3.0")
     object ImageSchema {
     
    -  val undefinedImageType = "Undefined"
    +  /**
    +   * OpenCv type representation
    +   *
    +   * @param mode ordinal for the type
    +   * @param dataType open cv data type
    +   * @param nChannels number of color channels
    +   */
    +  case class OpenCvType(mode: Int, dataType: String, nChannels: Int) {
    +    def name: String = if (mode == -1) { "Undefined" } else { 
s"CV_$dataType" + s"C$nChannels" }
    +    override def toString: String = s"OpenCvType(mode = $mode, name = 
$name)"
    +  }
     
       /**
    -   * (Scala-specific) OpenCV type mapping supported
    +   * Return the supported OpenCvType with matching name or raise error if 
there is no matching type.
    +   *
    +   * @param name: name of existing OpenCvType
    +   * @return OpenCvType that matches the given name
        */
    -  val ocvTypes: Map[String, Int] = Map(
    -    undefinedImageType -> -1,
    -    "CV_8U" -> 0, "CV_8UC1" -> 0, "CV_8UC3" -> 16, "CV_8UC4" -> 24
    -  )
    +  def ocvTypeByName(name: String): OpenCvType = {
    --- End diff --
    
    I prefer the ocvTypeByName unless there is a consensus otherwise. Find 
suggests slightly different usage patterns in my opinion and so does get, to 
some extent, + get would not be consistent with the rest of the python api. I 
don't feel particularly strong about this so if more people think it should be 
change I'd be happy to change it .


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to