FastVision
			
			
			
			const
			
			 
	
			RE_IMAGEFILE
			 
			=
			 
			
			r
			
			"
			.*\.(gif|jpe?g|tiff?|png|webp|bmp)$
			"
			i
			
			
			
	
			isimagefile
			(
			f
			)
			 
			=
			 
			
			matches
			(
	
			RE_IMAGEFILE
			,
			 
			f
			)
			
			
			
			function
			 
			
			
	
			maskfromimage
			(
			
			a
			::
			
			AbstractArray
			{
			
			<:
			
			Gray
			{
			T
			}
			}
			,
			 
			classes
			)
			 
			where
			 
			{
			T
			}
			
			
    
			
	
			maskfromimage
			(
			
			reinterpret
			(
			T
			,
			 
			a
			)
			,
			 
			classes
			)
			
			end
			
			
			function
			 
			
			
	
			maskfromimage
			(
			
			a
			::
			
			AbstractArray
			{
			
			<:
			
			Normed
			{
			T
			}
			}
			,
			 
			classes
			)
			 
			where
			 
			{
			T
			}
			
			
    
			
	
			maskfromimage
			(
			
			reinterpret
			(
			T
			,
			 
			a
			)
			,
			 
			classes
			)
			
			end
			
			
			function
			 
			
			
	
			maskfromimage
			(
			
			a
			::
			
			AbstractArray
			{
			I
			}
			,
			 
			classes
			)
			 
			where
			 
			{
			
			I
			 
			<:
			 
			Integer
			}
			
			
    
			
			a
			 
			.+=
			 
			
			one
			(
			I
			)
			
    
			
			return
			 
			
			IndirectArray
			(
			a
			,
			 
			classes
			)
			
			end
			
			
			
			
			
			"""
			
			    loadmask(file, classes)
			
			Load a segmentation mask from an image file. Returns an efficiently stored
			array of type `eltype(classes)`.
			
			"""
			
			
			
	
			loadmask
			(
			file
			,
			 
			classes
			)
			 
			=
			 
			
	
			maskfromimage
			(
			
			loadfile
			(
			file
			)
			,
			 
			classes
			)