Skip to content

Commit 2b09f06

Browse files
authored
feat: Merge pull request #60 from waoai/simple-mode
Add simple mode with traditional pixel filling
2 parents 297c0df + 2f6325e commit 2b09f06

File tree

7 files changed

+31
-5
lines changed

7 files changed

+31
-5
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"color-alpha": "^1.0.4",
1212
"get-image-data": "^3.0.1",
1313
"material-survey": "^1.0.34",
14-
"mmgc1-cpp": "^1.0.44",
14+
"mmgc1-cpp": "^1.0.46",
1515
"moment": "^2.23.0",
1616
"react-full-screen": "^0.2.4",
1717
"react-hotkeys": "^2.0.0",

src/Annotator/index.js

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ type Props = {
4242
keyframes?: Object,
4343
videoName?: string,
4444
fullImageSegmentationMode?: boolean,
45+
autoSegmentationOptions?:
46+
| {| type: "simple" |}
47+
| {| type: "autoseg", maxClusters?: number, slicWeightFactor?: number |},
4548
}
4649

4750
export const Annotator = ({
@@ -74,6 +77,7 @@ export const Annotator = ({
7477
onExit,
7578
onNextImage,
7679
onPrevImage,
80+
autoSegmentationOptions = { type: "autoseg" },
7781
}: Props) => {
7882
if (!images && !videoSrc)
7983
return 'Missing required prop "images" or "videoSrc"'
@@ -93,6 +97,7 @@ export const Annotator = ({
9397
pointDistancePrecision,
9498
selectedTool,
9599
fullImageSegmentationMode: fullImageSegmentationMode,
100+
autoSegmentationOptions,
96101
mode: null,
97102
taskDescription,
98103
showMask: true,

src/FullImageSegmentationAnnotator/index.story.js

+15
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,21 @@ storiesOf("FullImageSegmentationAnnotator.Basic", module)
7575
/>
7676
</div>
7777
))
78+
.add("Hard 1, 8 Class, Simple Mode", () => (
79+
<div style={{ width: "100vw", height: "100vh" }}>
80+
<FullImageSegmentationAnnotator
81+
images={[
82+
{
83+
name: "Hard",
84+
src: hard1,
85+
},
86+
]}
87+
regionClsList={["bg", "1", "2", "3", "4", "5", "6", "7", "8"]}
88+
onExit={action("onExit")}
89+
autoSegmentationOptions={{ type: "simple" }}
90+
/>
91+
</div>
92+
))
7893
.add("Hard 1, 8 Class", () => (
7994
<div style={{ width: "100vw", height: "100vh" }}>
8095
<FullImageSegmentationAnnotator

src/ImageCanvas/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type Props = {
4949
RegionEditLabel?: Node,
5050
videoPlaying?: boolean,
5151
fullImageSegmentationMode?: boolean,
52+
autoSegmentationOptions?: Object,
5253

5354
onChangeRegion: (Region) => any,
5455
onBeginRegionEdit: (Region) => any,
@@ -95,6 +96,7 @@ export const ImageCanvas = ({
9596
videoPlaying = false,
9697
showMask = true,
9798
fullImageSegmentationMode,
99+
autoSegmentationOptions,
98100
onImageOrVideoLoaded,
99101
onChangeRegion,
100102
onBeginRegionEdit,
@@ -375,6 +377,7 @@ export const ImageCanvas = ({
375377
{fullImageSegmentationMode && (
376378
<ImageMask
377379
hide={!showMask}
380+
autoSegmentationOptions={autoSegmentationOptions}
378381
imagePosition={imagePosition}
379382
regionClsList={regionClsList}
380383
imageSrc={imageSrc}

src/ImageMask/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const ImageMask = ({
1313
imagePosition,
1414
zIndex = 1,
1515
hide = false,
16+
autoSegmentationOptions = {},
1617
}) => {
1718
if (!window.mmgc) window.mmgc = MMGC_INIT()
1819
const mmgc = window.mmgc
@@ -55,6 +56,7 @@ export const ImageMask = ({
5556

5657
if (!superPixelsGenerated.current) {
5758
superPixelsGenerated.current = "processing"
59+
mmgc.setSimpleMode(autoSegmentationOptions.type === "simple")
5860
mmgc.setMaxClusters(10000)
5961
mmgc.setImageSize(sampleImageData.width, sampleImageData.height)
6062
mmgc.setClassColor(0, 0)

src/MainLayout/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ export const MainLayout = ({
159159
key={state.selectedImage}
160160
showMask={state.showMask}
161161
fullImageSegmentationMode={state.fullImageSegmentationMode}
162+
autoSegmentationOptions={state.autoSegmentationOptions}
162163
showTags={state.showTags}
163164
allowedArea={state.allowedArea}
164165
regionClsList={state.regionClsList}

yarn.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -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@
1084110841
dependencies:
1084210842
minimist "0.0.8"
1084310843

10844-
mmgc1-cpp@^1.0.44:
10845-
version "1.0.44"
10846-
resolved "https://registry.yarnpkg.com/mmgc1-cpp/-/mmgc1-cpp-1.0.44.tgz#b3059e9df06d1dba5899b159c454e1d435fec317"
10847-
integrity sha512-7kJk5zggfAR05id6a6ltXih39y8Va+zir1wevORNXBr/Glc2gtrqyc0HciXrOqyAUZ6Y93aRLW11BODsnDSemQ==
10844+
mmgc1-cpp@^1.0.46:
10845+
version "1.0.46"
10846+
resolved "https://registry.yarnpkg.com/mmgc1-cpp/-/mmgc1-cpp-1.0.46.tgz#f7b0cc20c42cf3d03e6cfbf1d72730599ef2bc5b"
10847+
integrity sha512-cZ8038sOUQDe5mLWuRC9oTxHZOvhUIigMKH7Ozg1md1NWgei5QBf4GnshPurvFuy0DBukCm4n63zyzoIzykjWg==
1084810848

1084910849
moment@^2.23.0:
1085010850
version "2.24.0"

0 commit comments

Comments
 (0)