Skip to content

Commit 0a6556b

Browse files
- FIX: Fixed errors.
1 parent 1c6f050 commit 0a6556b

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

src/pages/index.vue

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,14 @@
6262
const vegetationImageSrc = ref<string>()
6363
const ratio = ref<number>()
6464
const sliderValue = ref<number>(50)
65+
const polygon = ref<Polygon>()
6566
6667
const p1 = 0.95
6768
const p2 = 0.95
6869
const p3 = 20
6970
let maxRes = 1080
7071
let maxWidth = 1080
7172
let canvas: Canvas | undefined = undefined
72-
let polygon: Polygon | undefined = undefined
7373
let imageDimensions: Dims = { x: 0, y: 0 }
7474
let canvasDimensions: Dims = { x: 0, y: 0 }
7575
@@ -97,10 +97,10 @@
9797
})
9898
9999
function maximizePolygon () {
100-
if (polygon) {
101-
polygon.points = [{ x: 0, y: 0 }, { x: canvasDimensions.x, y: 0 }, { x: canvasDimensions.x, y: canvasDimensions.y }, { x: 0, y: canvasDimensions.y }]
102-
polygon.setCoords()
103-
polygon.canvas?.renderAll()
100+
if (polygon.value) {
101+
polygon.value.points = [{ x: 0, y: 0 }, { x: canvasDimensions.x, y: 0 }, { x: canvasDimensions.x, y: canvasDimensions.y }, { x: 0, y: canvasDimensions.y }]
102+
polygon.value.setCoords()
103+
polygon.value.canvas?.renderAll()
104104
}
105105
}
106106
@@ -110,6 +110,7 @@
110110
canvas = new Canvas(polygonCanvas.value)
111111
const width = Math.min(maxWidth, imageDimensions.x)
112112
const height = width * (imageDimensions.y / imageDimensions.x)
113+
113114
canvasDimensions = { x: width, y: height }
114115
canvas.setDimensions({ width, height })
115116
canvas.on('object:moving', (e: any) => {
@@ -132,8 +133,8 @@
132133
})
133134
}
134135
135-
if (!polygon) {
136-
polygon = new Polygon([{ x: 20, y: 20 }, { x: canvasDimensions.x - 40, y: 20 }, { x: canvasDimensions.x - 40, y: canvasDimensions.y - 40 }, { x: 20, y: canvasDimensions.y - 40 }], {
136+
if (!polygon.value) {
137+
polygon.value = new Polygon([{ x: 20, y: 20 }, { x: canvasDimensions.x - 40, y: 20 }, { x: canvasDimensions.x - 40, y: canvasDimensions.y - 40 }, { x: 20, y: canvasDimensions.y - 40 }], {
137138
fill: 'white',
138139
opacity: 0.25,
139140
strokeWidth: 1,
@@ -143,11 +144,11 @@
143144
cornerColor: '#6E1E41',
144145
hasBorders: false,
145146
})
146-
canvas.add(polygon)
147-
polygon.controls = controlsUtils.createPolyControls(polygon)
148-
Object.keys(polygon.controls).forEach(k => {
149-
if (polygon) {
150-
const control = polygon.controls[k]
147+
canvas.add(polygon.value)
148+
polygon.value.controls = controlsUtils.createPolyControls(polygon.value)
149+
Object.keys(polygon.value.controls).forEach(k => {
150+
if (polygon.value) {
151+
const control = polygon.value.controls[k]
151152
const ph = control.actionHandler
152153
control.actionHandler = (a: TPointerEvent, b: Transform, x: number, y: number) => {
153154
const canvas = b.target.canvas
@@ -159,7 +160,7 @@
159160
}
160161
}
161162
})
162-
canvas.setActiveObject(polygon)
163+
canvas.setActiveObject(polygon.value)
163164
}
164165
}
165166
}
@@ -196,7 +197,7 @@
196197
}
197198
198199
async function extractVegetation () {
199-
const points = polygon?.points || []
200+
const points = polygon.value?.points || []
200201
201202
if (scaledImage.value && openCvCanvas.value) {
202203
const src = cv.imread(scaledImage.value)
@@ -220,22 +221,22 @@
220221
if (scaledImageSrc.value && scaledImage.value && openCvCanvas.value) {
221222
const src = cv.imread(scaledImage.value)
222223
const dst = new cv.Mat()
223-
let dsize
224224
225225
if (src.cols > maxRes || src.rows > maxRes) {
226226
imageDimensions = getDims(src.cols, src.rows, maxRes)
227-
dsize = new cv.Size(imageDimensions.x, imageDimensions.y)
227+
const dsize = new cv.Size(imageDimensions.x, imageDimensions.y)
228228
229229
// You can try more different parameters
230230
cv.resize(src, dst, dsize, 0, 0, cv.INTER_AREA)
231231
cv.imshow(openCvCanvas.value, dst)
232232
scaledImageSrc.value = openCvCanvas.value.toDataURL()
233233
} else {
234+
imageDimensions = { x: src.cols, y: src.rows }
234235
cv.imshow(openCvCanvas.value, src)
235236
scaledImageSrc.value = openCvCanvas.value.toDataURL()
236237
}
237238
238-
addPolygon()
239+
nextTick(() => addPolygon())
239240
240241
deleteResources([src, dst])
241242
}

0 commit comments

Comments
 (0)