Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #
.. attribute:: ImageSchema
An attribute of this module that contains the instance of :class:`_ImageSchema`.
.. autoclass:: _ImageSchema :members: """
""" Internal class for `pyspark.ml.image.ImageSchema` attribute. Meant to be private and not to be instantized. Use `pyspark.ml.image.ImageSchema` attribute to access the APIs of this class. """
def imageSchema(self): """ Returns the image schema.
Returns ------- :class:`StructType` with a single column of images named "image" (nullable) and having the same type returned by :meth:`columnSchema`.
.. versionadded:: 2.3.0 """
def ocvTypes(self): """ Returns the OpenCV type mapping supported.
Returns ------- dict a dictionary containing the OpenCV type mapping supported.
.. versionadded:: 2.3.0 """
def columnSchema(self): """ Returns the schema for the image column.
Returns ------- :class:`StructType` a schema for image column, ``struct<origin:string, height:int, width:int, nChannels:int, mode:int, data:binary>``.
.. versionadded:: 2.4.0 """
def imageFields(self): """ Returns field names of image columns.
Returns ------- list a list of field names.
.. versionadded:: 2.3.0 """
def undefinedImageType(self): """ Returns the name of undefined image type for the invalid image.
.. versionadded:: 2.3.0 """
ctx._jvm.org.apache.spark.ml.image.ImageSchema.undefinedImageType()
""" Converts an image to an array with metadata.
Parameters ---------- image : :class:`Row` image: A row that contains the image to be converted. It should have the attributes specified in `ImageSchema.imageSchema`.
Returns ------- :class:`numpy.ndarray` that is an image.
.. versionadded:: 2.3.0 """
"image argument should be pyspark.sql.types.Row; however, " "it got [%s]." % type(image))
"image argument should have attributes specified in " "ImageSchema.imageSchema [%s]." % ", ".join(self.imageFields))
shape=(height, width, nChannels), dtype=np.uint8, buffer=image.data, strides=(width * nChannels, nChannels, 1))
""" Converts an array with metadata to a two-dimensional image.
Parameters ---------- array : :class:`numpy.ndarray` The array to convert to image. origin : str Path to the image, optional.
Returns ------- :class:`Row` that is a two dimensional image.
.. versionadded:: 2.3.0 """
"array argument should be numpy.ndarray; however, it got [%s]." % type(array))
raise ValueError("Invalid array shape")
mode = ocvTypes["CV_8UC1"] elif nChannels == 4: mode = ocvTypes["CV_8UC4"] else: raise ValueError("Invalid number of channels")
# Running `bytearray(numpy.array([1]))` fails in specific Python versions # with a specific Numpy version, for example in Python 3.6.0 and NumPy 1.13.3. # Here, it avoids it by converting it to bytes. else: # Numpy prior to 1.9 don't have `tobytes` method. data = bytearray(array.astype(dtype=np.uint8).ravel())
# Creating new Row with _create_row(), because Row(name = value, ... ) # orders fields by name, which conflicts with expected schema order # when the new DataFrame is created by UDF [origin, height, width, nChannels, mode, data])
# Monkey patch to disallow instantiation of this class. raise RuntimeError("Creating instance of _ImageSchema class is disallowed.")
.master("local[2]")\ .appName("ml.image tests")\ .getOrCreate()
pyspark.ml.image, globs=globs, optionflags=doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE) sys.exit(-1)
|