diff --git a/package.json b/package.json index e7a632de..2042ab5a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "color-alpha": "^1.0.4", "get-image-data": "^3.0.1", "material-survey": "^1.0.34", - "mmgc1-cpp": "^1.0.44", + "mmgc1-cpp": "^1.0.46", "moment": "^2.23.0", "react-full-screen": "^0.2.4", "react-hotkeys": "^2.0.0", diff --git a/src/Annotator/index.js b/src/Annotator/index.js index c0d927ac..a3c7907e 100644 --- a/src/Annotator/index.js +++ b/src/Annotator/index.js @@ -42,6 +42,9 @@ type Props = { keyframes?: Object, videoName?: string, fullImageSegmentationMode?: boolean, + autoSegmentationOptions?: + | {| type: "simple" |} + | {| type: "autoseg", maxClusters?: number, slicWeightFactor?: number |}, } export const Annotator = ({ @@ -74,6 +77,7 @@ export const Annotator = ({ onExit, onNextImage, onPrevImage, + autoSegmentationOptions = { type: "autoseg" }, }: Props) => { if (!images && !videoSrc) return 'Missing required prop "images" or "videoSrc"' @@ -93,6 +97,7 @@ export const Annotator = ({ pointDistancePrecision, selectedTool, fullImageSegmentationMode: fullImageSegmentationMode, + autoSegmentationOptions, mode: null, taskDescription, showMask: true, diff --git a/src/FullImageSegmentationAnnotator/index.story.js b/src/FullImageSegmentationAnnotator/index.story.js index 053c101c..b2d2b7ea 100644 --- a/src/FullImageSegmentationAnnotator/index.story.js +++ b/src/FullImageSegmentationAnnotator/index.story.js @@ -75,6 +75,21 @@ storiesOf("FullImageSegmentationAnnotator.Basic", module) /> )) + .add("Hard 1, 8 Class, Simple Mode", () => ( +
+ +
+ )) .add("Hard 1, 8 Class", () => (
any, onBeginRegionEdit: (Region) => any, @@ -95,6 +96,7 @@ export const ImageCanvas = ({ videoPlaying = false, showMask = true, fullImageSegmentationMode, + autoSegmentationOptions, onImageOrVideoLoaded, onChangeRegion, onBeginRegionEdit, @@ -375,6 +377,7 @@ export const ImageCanvas = ({ {fullImageSegmentationMode && ( { if (!window.mmgc) window.mmgc = MMGC_INIT() const mmgc = window.mmgc @@ -55,6 +56,7 @@ export const ImageMask = ({ if (!superPixelsGenerated.current) { superPixelsGenerated.current = "processing" + mmgc.setSimpleMode(autoSegmentationOptions.type === "simple") mmgc.setMaxClusters(10000) mmgc.setImageSize(sampleImageData.width, sampleImageData.height) mmgc.setClassColor(0, 0) diff --git a/src/MainLayout/index.js b/src/MainLayout/index.js index e2133a23..a125fc26 100644 --- a/src/MainLayout/index.js +++ b/src/MainLayout/index.js @@ -159,6 +159,7 @@ export const MainLayout = ({ key={state.selectedImage} showMask={state.showMask} fullImageSegmentationMode={state.fullImageSegmentationMode} + autoSegmentationOptions={state.autoSegmentationOptions} showTags={state.showTags} allowedArea={state.allowedArea} regionClsList={state.regionClsList} diff --git a/yarn.lock b/yarn.lock index f0316ae4..b8bc52f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10841,10 +10841,10 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@ dependencies: minimist "0.0.8" -mmgc1-cpp@^1.0.44: - version "1.0.44" - resolved "https://registry.yarnpkg.com/mmgc1-cpp/-/mmgc1-cpp-1.0.44.tgz#b3059e9df06d1dba5899b159c454e1d435fec317" - integrity sha512-7kJk5zggfAR05id6a6ltXih39y8Va+zir1wevORNXBr/Glc2gtrqyc0HciXrOqyAUZ6Y93aRLW11BODsnDSemQ== +mmgc1-cpp@^1.0.46: + version "1.0.46" + resolved "https://registry.yarnpkg.com/mmgc1-cpp/-/mmgc1-cpp-1.0.46.tgz#f7b0cc20c42cf3d03e6cfbf1d72730599ef2bc5b" + integrity sha512-cZ8038sOUQDe5mLWuRC9oTxHZOvhUIigMKH7Ozg1md1NWgei5QBf4GnshPurvFuy0DBukCm4n63zyzoIzykjWg== moment@^2.23.0: version "2.24.0"