Package qupath.opencv.dnn
Class OpenCVModelObjectClassifier
java.lang.Object
qupath.lib.classifiers.object.AbstractObjectClassifier<BufferedImage>
qupath.opencv.dnn.OpenCVModelObjectClassifier
- All Implemented Interfaces:
ObjectClassifier<BufferedImage>
,UriResource
public class OpenCVModelObjectClassifier
extends AbstractObjectClassifier<BufferedImage>
implements UriResource
Initial implementation of a patch-based
ObjectClassifier
using an OpenCV-compatible DNN.
Warning! This implementation may change in the future.
- Author:
- Pete Bankhead
-
Field Summary
Fields inherited from interface qupath.lib.classifiers.object.ObjectClassifier
PROJECT_LOCATION
-
Constructor Summary
ConstructorDescriptionOpenCVModelObjectClassifier
(PathObjectFilter filter, OpenCVDnn model, List<PathClass> pathClasses, int width, int height, double requestedPixelSize) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionint
classifyObjects
(ImageData<BufferedImage> imageData, Collection<? extends PathObject> pathObjects, boolean resetExistingClass) Classify the objects in the specified collection.getMissingFeatures
(ImageData<BufferedImage> imageData, Collection<? extends PathObject> pathObjects) Check for missing features, returning the names and number of input objects missing the specified features.Get the classifications set by this classifier.getURIs()
Get all the URIs required for this resource.protected boolean
tryToClassify
(ClassificationModel model, PathObject pathObject, ImageServer<BufferedImage> server, double downsample, IntFunction<PathClass> classifier) boolean
updateURIs
(Map<URI, URI> replacements) Update the specified URIs.Methods inherited from class qupath.lib.classifiers.object.AbstractObjectClassifier
classifyObjects, getCompatibleObjects
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface qupath.lib.io.UriResource
getUris, updateUris
-
Constructor Details
-
OpenCVModelObjectClassifier
public OpenCVModelObjectClassifier(PathObjectFilter filter, OpenCVDnn model, List<PathClass> pathClasses, int width, int height, double requestedPixelSize) Constructor.- Parameters:
filter
- filter to select compatible optionsmodel
- wrapper for the DNN model, including optional preprocessingpathClasses
- ordered list of classifications, corresponding to the predicted labelswidth
- patch width, in pixels, at the classification sizeheight
- patch height, in pixels, at the classification siderequestedPixelSize
- requested pixel size, in calibrated units, used to calculate the downsample value
-
-
Method Details
-
getPathClasses
Description copied from interface:ObjectClassifier
Get the classifications set by this classifier.- Specified by:
getPathClasses
in interfaceObjectClassifier<BufferedImage>
- Returns:
-
classifyObjects
public int classifyObjects(ImageData<BufferedImage> imageData, Collection<? extends PathObject> pathObjects, boolean resetExistingClass) Description copied from interface:ObjectClassifier
Classify the objects in the specified collection. This provides a means to specify exactly which objects should be classified, avoiding reliance onObjectClassifier.getCompatibleObjects(ImageData)
.Note: this method does not typically fire any hierarchy change/object classification events. It is up to the caller to fire these events if required.
- Specified by:
classifyObjects
in interfaceObjectClassifier<BufferedImage>
- Parameters:
imageData
- data that may or may not be required for classification depending upon how features are extractedpathObjects
- the objects to classifyresetExistingClass
-- Returns:
- the number of objects whose classification was changed.
- See Also:
-
tryToClassify
protected boolean tryToClassify(ClassificationModel model, PathObject pathObject, ImageServer<BufferedImage> server, double downsample, IntFunction<PathClass> classifier) -
getMissingFeatures
public Map<String,Integer> getMissingFeatures(ImageData<BufferedImage> imageData, Collection<? extends PathObject> pathObjects) Description copied from interface:ObjectClassifier
Check for missing features, returning the names and number of input objects missing the specified features. This is useful as a warning that the input for the classifier may not be valid. Default implementation returns an empty map; however, implementations should attempt to provide a meaningful output if possible. Features that are not missing should not be included in the output.- Specified by:
getMissingFeatures
in interfaceObjectClassifier<BufferedImage>
- Parameters:
imageData
- image containing the objects to testpathObjects
- objects to test for missing features; if not available,ObjectClassifier.getCompatibleObjects(ImageData)
will be called.- Returns:
- a map of feature names and the number of objects missing the corresponding features.
-
getURIs
Description copied from interface:UriResource
Get all the URIs required for this resource. This is often an empty or singleton list.- Specified by:
getURIs
in interfaceUriResource
- Returns:
- the required URIs
- Throws:
IOException
-
updateURIs
Description copied from interface:UriResource
Update the specified URIs.Warning! This should be used sparingly, particularly for objects that are otherwise immutable. It is intended only for correcting paths that have become invalid (e.g. because of files being relocated or transferred between computers) before first use of the object. It should not be used to manipulate an object after construction. Indeed, some implementations may throw an
UnsupportedOperationException
if called too late.- Specified by:
updateURIs
in interfaceUriResource
- Parameters:
replacements
- replacement map, where the key gives the current URI and the value gives its replacement.- Returns:
- true if URIs were changed, false otherwise
- Throws:
IOException
-