Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
D
desktop_flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林生雨
desktop_flutter
Commits
53f3c5e8
Commit
53f3c5e8
authored
Nov 28, 2019
by
林生雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
a680c565
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1323 additions
and
139 deletions
+1323
-139
.DS_Store
.DS_Store
+0
-0
PointItem.dart
lib/HomeModel/base/bean/PointItem.dart
+122
-2
WorkView.dart
lib/HomeModel/base/view/WorkView.dart
+61
-80
WorkModel.dart
lib/HomeModel/page/work/WorkModel.dart
+124
-6
WorkPage.dart
lib/HomeModel/page/work/WorkPage.dart
+131
-13
temp.dart
lib/HomeModel/page/work/temp.dart
+32
-0
HomeRepo.dart
lib/HomeModel/service/HomeRepo.dart
+48
-3
MaskResultBean.dart
lib/HomeModel/service/remote/entity/MaskResultBean.dart
+29
-0
LoginPage.dart
lib/UserModel/page/login/LoginPage.dart
+18
-1
BaseComponent.dart
lib/commonModel/base/BaseComponent.dart
+28
-3
main.dart
lib/main.dart
+2
-1
project.pbxproj
macos/Runner.xcodeproj/project.pbxproj
+492
-5
Cv.h
macos/Runner/Cv.h
+33
-0
Cv.mm
macos/Runner/Cv.mm
+140
-0
MainFlutterWindow.swift
macos/Runner/MainFlutterWindow.swift
+27
-25
MyPlugin.swift
macos/Runner/MyPlugin.swift
+31
-0
Runner-Bridging-Header.h
macos/Runner/Runner-Bridging-Header.h
+5
-0
No files found.
.DS_Store
View file @
53f3c5e8
No preview for this file type
lib/HomeModel/base/bean/PointItem.dart
View file @
53f3c5e8
...
...
@@ -4,8 +4,12 @@
**/
import
'dart:ui'
as
ui
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/src/gestures/drag_details.dart'
;
class
PointItem
{
List
<
ui
.
Offset
>
list
=
new
List
();
List
<
ui
.
Offset
>
tempList
=
new
List
();
ui
.
Image
image
;
double
x
=
-
1
;
double
y
=
-
1
;
...
...
@@ -13,6 +17,11 @@ class PointItem {
double
tranX
=
0
;
double
tranY
=
0
;
bool
drawPath
=
false
;
bool
rectModel
=
false
;
bool
isDown
=
false
;
ui
.
Rect
rect
=
new
Rect
.
fromLTRB
(
100
,
100
,
200
,
200
);
ui
.
Rect
rectTemp
=
new
Rect
.
fromLTRB
(
100
,
100
,
200
,
200
);
double
downX
,
downY
;
void
reset
()
{
list
.
clear
();
...
...
@@ -22,6 +31,7 @@ class PointItem {
tranY
=
0
;
tranX
=
0
;
drawPath
=
false
;
rect
=
new
Rect
.
fromLTRB
(
100
,
100
,
200
,
200
);
}
PointItem
();
...
...
@@ -64,12 +74,18 @@ class PointItem {
}
addPoint
(
double
x
,
double
y
)
{
double
realX
=
(
x
+
getTranX
())
/
scareSize
;
double
realY
=
(
y
+
getTranY
())
/
scareSize
;
if
(
rectModel
)
{
return
;
}
double
realX
=
(
x
/
scareSize
+
getTranX
());
double
realY
=
(
y
/
scareSize
+
getTranY
());
list
.
add
(
new
ui
.
Offset
(
realX
,
realY
));
}
removePoint
()
{
if
(
rectModel
)
{
return
;
}
if
(
list
.
isNotEmpty
)
{
list
.
removeAt
(
list
.
length
-
1
);
drawPath
=
false
;
...
...
@@ -101,9 +117,113 @@ class PointItem {
}
void
close
()
{
if
(
rectModel
)
{
return
;
}
if
(
list
.
isNotEmpty
&&
list
.
length
>
2
)
{
list
.
add
(
list
[
0
]);
drawPath
=
true
;
}
}
void
drag
(
DragUpdateDetails
details
,
double
startTranX
,
double
dragStartX
,
double
startTranY
,
double
dragStartY
,
bool
dragMark
)
{
double
diffX
=
(
details
.
localPosition
.
dx
-
dragStartX
)
/
scareSize
;
double
diffY
=
(
details
.
localPosition
.
dy
-
dragStartY
)
/
scareSize
;
bool
pkWin
=
true
;
if
(
drawPath
&&
dragMark
&&
isDown
)
{
pkWin
=
false
;
list
.
clear
();
for
(
int
i
=
0
;
i
<
tempList
.
length
;
i
++)
{
list
.
add
(
Offset
(
tempList
[
i
].
dx
+
diffX
,
tempList
[
i
].
dy
+
diffY
));
}
print
(
"TRAN
${(details.localPosition.dx - dragStartX)}
${(details.localPosition.dy - dragStartY)}
"
);
}
//rectModel && scareSize == 1 ||
//&& scareSize != 1
if
(
rectModel
&&
isDown
)
{
print
(
"
${downX}
${downY}
${rectTemp.left}
${rectTemp.top}
"
);
//drag item
if
(
downX
>
rectTemp
.
left
+
5
&&
downX
<
rectTemp
.
right
-
5
&&
downY
>
rectTemp
.
top
+
5
&&
downY
<
rectTemp
.
bottom
-
5
)
{
pkWin
=
false
;
rect
=
new
Rect
.
fromLTRB
(
rectTemp
.
left
+
diffX
,
rectTemp
.
top
+
diffY
,
rectTemp
.
right
+
diffX
,
rectTemp
.
bottom
+
diffY
);
}
//left TOP
if
(
downX
>
rectTemp
.
left
-
5
&&
downX
<
rectTemp
.
left
+
5
&&
downY
>
rectTemp
.
top
-
5
&&
downY
<
rectTemp
.
top
+
5
)
{
pkWin
=
false
;
double
left
=
rectTemp
.
left
+
diffX
;
double
right
=
rectTemp
.
right
;
double
top
=
rectTemp
.
top
+
diffY
;
double
bottom
=
rectTemp
.
bottom
;
if
(
rectTemp
.
left
+
diffX
+
10
>=
rectTemp
.
right
)
{
right
=
rectTemp
.
left
+
diffX
+
10
;
}
if
(
rectTemp
.
top
+
diffY
+
10
>=
rectTemp
.
bottom
)
{
bottom
=
rectTemp
.
top
+
diffY
+
10
;
}
rect
=
new
Rect
.
fromLTRB
(
left
,
top
,
right
,
bottom
);
}
if
((
downX
)
>
(
rectTemp
.
right
-
5
)
&&
(
downX
)
<
(
rectTemp
.
right
+
5
)
&&
(
downY
)
>
(
rectTemp
.
bottom
-
5
)
&&
(
downY
)
<
(
rectTemp
.
bottom
+
5
))
{
pkWin
=
false
;
//right bottom
double
left
=
(
rectTemp
.
left
);
double
right
=
(
rectTemp
.
right
+
diffX
);
double
top
=
(
rectTemp
.
top
);
double
bottom
=
(
rectTemp
.
bottom
+
diffY
);
if
((
rectTemp
.
right
+
diffX
-
10
)
<=
(
rectTemp
.
left
))
{
left
=
(
right
-
10
);
}
if
((
rectTemp
.
bottom
+
diffY
-
10
)
<=
(
rectTemp
.
top
))
{
top
=
(
bottom
-
10
);
}
rect
=
new
Rect
.
fromLTRB
(
left
,
top
,
right
,
bottom
);
}
}
if
(
pkWin
&&
scareSize
!=
1
)
{
setTranX
(
startTranX
-
(
details
.
localPosition
.
dx
-
dragStartX
)
/
scareSize
);
setTranY
(
startTranY
-
(
details
.
localPosition
.
dy
-
dragStartY
)
/
scareSize
);
}
}
double
getRealPosX
(
double
pos
)
{
return
(
pos
/
scareSize
+
getTranX
());
}
double
getRealPosY
(
double
pos
)
{
return
pos
/
scareSize
+
getTranY
();
}
void
down
(
double
tapStartX
,
double
tapStartY
,
bool
dragMask
)
{
isDown
=
true
;
if
(
rectModel
)
{
downX
=
getRealPosX
(
tapStartX
);
downY
=
getRealPosY
(
tapStartY
);
rectTemp
=
new
Rect
.
fromLTRB
(
(
rect
.
left
),
(
rect
.
top
),
(
rect
.
right
),
(
rect
.
bottom
));
}
if
(
drawPath
)
{
tempList
=
[];
tempList
.
addAll
(
list
);
}
}
void
dragEnd
(
DragEndDetails
details
)
{
isDown
=
false
;
}
}
lib/HomeModel/base/view/WorkView.dart
View file @
53f3c5e8
...
...
@@ -9,52 +9,14 @@ import 'package:example_flutter/HomeModel/base/bean/PointItem.dart';
import
'package:flutter/material.dart'
;
import
'dart:ui'
as
ui
;
//
//class WorkViewController extends StatefulWidget {
// @override
// State<StatefulWidget> createState() => WorkViewState();
//}
//
//class WorkViewState extends State<WorkViewController> {
// ui.Image img;
//
// @override
// void initState() {
// super.initState();
// String testImg =
// "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1574413347096&di=44b91b322281ad449b4d93cf79df3d0c&imgtype=0&src=http%3A%2F%2Fpic27.nipic.com%2F20130324%2F9252150_152129329000_2.jpg";
// loadImage(testImg).then((value) {
// setState(() {
// img = value;
// });
// });
// }
//
// @override
// Widget build(BuildContext context) {
// return CustomPaint(painter: WorkView(img));
// }
//
// Future<ui.Image> loadImage(var path) async {
// ImageStream stream = NetworkImage(
// path,
// ).resolve(ImageConfiguration.empty);
// Completer<ui.Image> completer = Completer<ui.Image>();
// void listener(ImageInfo frame, bool synchronousCall) {
// final ui.Image image = frame.image as ui.Image;
// completer.complete(image);
// stream.removeListener(ImageStreamListener(listener));
// }
//
// stream.addListener(ImageStreamListener(listener));
// return completer.future;
// }
//}
import
'package:flutter_animation_set/animator.dart'
;
class
WorkView
extends
CustomPainter
{
PointItem
item
;
Function
(
double
value
,
double
topBuf
,
double
topAdd
)
call
;
Path
path
;
WorkView
(
this
.
item
)
{}
WorkView
(
this
.
item
,
this
.
call
)
{}
Paint
ImagePaint
=
new
Paint
()..
isAntiAlias
=
true
;
Paint
linePaint
=
new
Paint
()
..
isAntiAlias
=
true
...
...
@@ -71,28 +33,43 @@ class WorkView extends CustomPainter {
..
color
=
Colors
.
black38
..
style
=
PaintingStyle
.
fill
;
Paint
circlePaint
=
new
Paint
()
..
isAntiAlias
=
true
..
color
=
Colors
.
redAccent
..
style
=
PaintingStyle
.
fill
;
Paint
rectPaint
=
new
Paint
()
..
isAntiAlias
=
true
..
color
=
Colors
.
blue
..
style
=
PaintingStyle
.
stroke
..
strokeWidth
=
2
;
@override
void
paint
(
Canvas
canvas
,
Size
size
)
{
if
(
item
.
scareSize
!=
1
)
{
canvas
.
scale
(
item
.
scareSize
,
item
.
scareSize
);
}
if
(
item
.
tranX
!=
0
||
item
.
tranY
!=
0
)
{
if
(
item
.
tranX
/
item
.
scareSize
>
size
.
width
)
{
item
.
tranX
=
size
.
width
*
item
.
scareSize
;
if
(
item
.
tranX
+
size
.
width
/
item
.
scareSize
>
size
.
width
)
{
item
.
tranX
=
size
.
width
-
size
.
width
/
item
.
scareSize
;
}
if
(
item
.
tranY
/
item
.
scareSize
>
size
.
height
)
{
item
.
tranY
=
size
.
height
*
item
.
scareSize
;
if
(
item
.
tranY
+
size
.
height
/
item
.
scareSize
>
size
.
height
)
{
item
.
tranY
=
size
.
height
-
size
.
height
/
item
.
scareSize
;
}
canvas
.
translate
(-
item
.
tranX
,
-
item
.
tranY
);
}
if
(
item
.
scareSize
!=
1
)
{
canvas
.
scale
(
item
.
scareSize
,
item
.
scareSize
);
}
if
(
item
.
getImage
()
!=
null
)
{
double
scareSize
=
item
.
getImage
().
width
/
size
.
width
;
double
showWidth
=
size
.
width
;
double
showheight
=
item
.
getImage
().
height
/
scareSize
;
double
top
;
if
(
showheight
>
size
.
height
)
{
showheight
=
size
.
height
;
}
double
top
=
(
size
.
height
-
showheight
)
/
2
;
// showheight = size.height;
// top=(showheight-size.height)/2;
}
else
{}
top
=
(
size
.
height
-
showheight
)
/
2
;
call
(
scareSize
,
top
,
(
size
.
height
-
showheight
)
/
2
);
canvas
.
drawImageRect
(
item
.
getImage
(),
Rect
.
fromLTWH
(
0.0
,
0.0
,
item
.
getImage
().
width
.
toDouble
(),
...
...
@@ -100,8 +77,11 @@ class WorkView extends CustomPainter {
Rect
.
fromLTWH
(
0
,
top
,
showWidth
,
showheight
),
ImagePaint
);
}
double
newX
=
(
item
.
getX
()
+
item
.
getTranX
())
/
item
.
scareSize
;
double
newY
=
(
item
.
getY
()
+
item
.
getTranY
())
/
item
.
scareSize
;
// double newX = (item.getX() + item.getTranX()) / item.scareSize;
double
newX
=
(
item
.
getX
()
/
item
.
scareSize
+
item
.
getTranX
());
// double newY = (item.getY() + item.getTranY()) / item.scareSize;
double
newY
=
(
item
.
getY
()
/
item
.
scareSize
+
item
.
getTranY
());
if
(
item
.
getX
()
!=
null
&&
item
.
getY
()
!=
null
&&
item
.
getX
()
>=
0
&&
...
...
@@ -120,37 +100,38 @@ class WorkView extends CustomPainter {
..
layout
(
maxWidth:
150
,
minWidth:
30
)
..
paint
(
canvas
,
Offset
(
newX
+
5
,
newY
-
20
));
}
if
(
item
.
getPoints
().
isNotEmpty
)
{
// if(item.getPoints().length==1){
// canvas.drawPoints(pointMode, points, paint)
// }else if(item.getPoints().length==2){
//
// } else{
// for(int i=0;i<item.getPoints().length;i++){
// if(i==item.getPoints().length-1){
//
// }else{
//
// }
// }
// }
canvas
.
drawPoints
(
PointMode
.
polygon
,
item
.
getPoints
(),
pointPaint
);
}
print
(
"OK??
${item.drawPath}
"
);
if
(
item
.
drawPath
)
{
if
(
item
.
getPoints
().
length
<
2
)
{
return
;
if
(
item
.
rectModel
)
{
canvas
.
drawRect
(
item
.
rect
,
rectPaint
);
canvas
.
drawRect
(
item
.
rect
,
pathPaint
);
canvas
.
drawCircle
(
Offset
(
item
.
rect
.
left
,
item
.
rect
.
top
),
5
,
circlePaint
);
canvas
.
drawCircle
(
Offset
(
item
.
rect
.
right
,
item
.
rect
.
bottom
),
5
,
circlePaint
);
}
else
{
if
(
item
.
getPoints
().
isNotEmpty
)
{
canvas
.
drawPoints
(
PointMode
.
polygon
,
item
.
getPoints
(),
pointPaint
);
}
Path
path
=
new
Path
();
path
.
moveTo
(
item
.
getPoints
()[
0
].
dx
,
item
.
getPoints
()[
0
].
dy
);
for
(
int
i
=
0
;
i
<
item
.
getPoints
().
length
;
i
++)
{
path
.
lineTo
(
item
.
getPoints
()[
i
].
dx
,
item
.
getPoints
()[
i
].
dy
);
if
(
item
.
drawPath
)
{
if
(
item
.
getPoints
().
length
<
2
)
{
return
;
}
path
=
new
Path
();
path
.
moveTo
(
item
.
getPoints
()[
0
].
dx
,
item
.
getPoints
()[
0
].
dy
);
for
(
int
i
=
0
;
i
<
item
.
getPoints
().
length
;
i
++)
{
path
.
lineTo
(
item
.
getPoints
()[
i
].
dx
,
item
.
getPoints
()[
i
].
dy
);
}
path
.
close
();
canvas
.
drawPath
(
path
,
pathPaint
);
}
path
.
close
();
canvas
.
drawPath
(
path
,
pathPaint
);
}
}
bool
calutePath
(
Offset
offset
)
{
if
(
path
!=
null
)
{
return
path
.
contains
(
offset
);
}
return
false
;
}
@override
bool
shouldRepaint
(
CustomPainter
oldDelegate
)
{
return
true
;
...
...
lib/HomeModel/page/work/WorkModel.dart
View file @
53f3c5e8
...
...
@@ -21,6 +21,8 @@ import 'package:flutter/material.dart';
import
'package:flutter_animation_set/animator.dart'
;
class
WorkModel
extends
BaseModel
{
LiveData
<
bool
>
rectMaskLive
=
new
LiveData
();
LiveData
<
String
>
maskTabLive
=
new
LiveData
();
LiveData
<
PointItem
>
pointLive
=
new
LiveData
();
LiveData
<
List
<
int
>>
nowIndexLive
=
new
LiveData
();
LiveData
<
Map
<
String
,
List
<
List
<
String
>>>>
selectLive
=
new
LiveData
();
...
...
@@ -403,6 +405,8 @@ class WorkModel extends BaseModel {
@override
void
dispose
()
{
rectMaskLive
.
dispost
();
maskTabLive
.
dispost
();
pointLive
.
dispost
();
nowIndexLive
.
dispost
();
tabLive
.
dispost
();
...
...
@@ -565,20 +569,89 @@ class WorkModel extends BaseModel {
});
}
void
saveDrawImage
(
BuildContext
context
,
double
picScare
,
double
topBuf
,
double
topAdd
)
{
if
(
maskTabLive
.
data
==
null
)
{
Toast
.
show
(
context
,
"得选着一个标签哦"
);
return
;
}
print
(
"SCARE ===== >>>>>
$picScare
"
);
if
(
pointItem
.
list
.
isEmpty
)
{
Toast
.
show
(
context
,
"还没有标记数据哦~"
);
return
;
}
BaseCenterPicker
()
..
setPicker
(
BaseLoadingItem
(
"保存中..."
))
..
show
(
context
);
List
<
int
>
uploadList
=
[];
pointItem
.
list
.
forEach
((
off
)
{
uploadList
.
add
((
off
.
dx
*
picScare
).
toInt
());
if
(
topAdd
>
0
)
{
uploadList
.
add
(((
off
.
dy
+
topAdd
)
*
picScare
).
toInt
());
}
else
{
uploadList
.
add
(((
off
.
dy
-
topBuf
)
*
picScare
).
toInt
());
}
});
if
(
uploadList
.
isNotEmpty
)
{
getTempDirX
(
context
,
(
dir
)
{
var
savePath
=
"
${dir}
/
${DateTime.now().millisecondsSinceEpoch}
.jpeg"
;
DioUtil
()
.
getDio
()
.
download
(
_repo
.
getCurrentPageList
()[
currentIndex
].
picurl
,
savePath
)
.
whenComplete
(()
{
String
uploadPath
=
"
${dir}
/sign
${DateTime.now().millisecondsSinceEpoch}
.jpeg"
;
toImage
(
uploadList
,
uploadPath
,
savePath
).
whenComplete
(()
{
File
(
savePath
).
delete
();
HomeRepo
.
getInstance
()
.
maskImage
(
uploadPath
,
imageId
,
maskExplain
[
maskTabLive
.
data
],
listToUi
(
pointItem
.
list
))
.
listen
((
value
)
{
if
(
value
!=
null
)
{
Toast
.
show
(
context
,
"保存成功"
);
Navigator
.
pop
(
context
);
File
(
uploadPath
).
delete
();
Navigator
.
pop
(
context
);
}
}).
onError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
print
(
error
.
toString
());
Navigator
.
pop
(
context
);
});
// String realUploadPath =
// "${dir}/mask${DateTime.now().millisecondsSinceEpoch}.png";
// opencvMethod(uploadPath, realUploadPath).whenComplete(() {
// print("!!!!!!!! ${uploadPath} ${realUploadPath}");
// Navigator.pop(context);
// }).catchError((error) {
// print(error.toString());
// });
}).
catchError
((
error
)
{
Navigator
.
pop
(
context
);
Toast
.
show
(
context
,
"保存失败"
);
print
(
error
.
toString
());
});
});
});
}
}
void
saveImage
(
BuildContext
context
)
{
Toast
.
show
(
context
,
"开始保存
图片
"
);
Toast
.
show
(
context
,
"开始保存"
);
getTempDir
().
then
((
value
)
{
if
(
value
!=
null
)
{
print
(
value
);
DioUtil
().
getDio
().
download
(
_repo
.
getCurrentPageList
()[
currentIndex
].
picurl
,
"
${value}
/
${DateTime.now().millisecondsSinceEpoch}
.jpeg"
,
onReceiveProgress:
(
int
count
,
int
total
)
{
var
savePath
=
"
${value}
/
${DateTime.now().millisecondsSinceEpoch}
.jpeg"
;
DioUtil
()
.
getDio
()
.
download
(
_repo
.
getCurrentPageList
()[
currentIndex
].
picurl
,
savePath
,
onReceiveProgress:
(
int
count
,
int
total
)
{
//进度
// Toast.show(context, "进度!! $count $total");
print
(
"进度!!
$count
$total
"
);
}).
then
((
value
)
{
Toast
.
show
(
context
,
"下载完成"
);
print
(
"OKKK "
);
print
(
"OKKK "
+
savePath
);
openCachce
();
}).
catchError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
...
...
@@ -595,7 +668,9 @@ class WorkModel extends BaseModel {
}
void
getNetWorkImg
(
BuildContext
context
)
{
loadNetWorkImage
(
_repo
.
getCurrentPageList
()[
currentIndex
].
picurl
).
then
((
value
)
{
rectMaskLive
.
notifyView
(
pointItem
.
rectModel
);
loadNetWorkImage
(
_repo
.
getCurrentPageList
()[
currentIndex
].
picurl
)
.
then
((
value
)
{
pointItem
.
reset
();
pointItem
.
setImage
(
value
);
pointLive
.
notifyView
(
pointItem
);
...
...
@@ -608,6 +683,49 @@ class WorkModel extends BaseModel {
void
syncPoint
()
{
pointLive
.
notifyView
(
pointItem
);
}
void
showMaskTabSelect
(
BuildContext
context
)
{
showModalBottomSheet
(
context:
context
,
builder:
(
BuildContext
context
)
{
List
<
Widget
>
list
=
new
List
();
maskTabList
.
forEach
((
value
)
{
list
.
add
(
new
ListTile
(
leading:
new
Icon
(
Icons
.
select_all
),
title:
new
Text
(
value
),
onTap:
()
async
{
Navigator
.
pop
(
context
);
maskTabLive
.
notifyView
(
value
);
},
));
});
return
new
Column
(
mainAxisSize:
MainAxisSize
.
min
,
children:
list
);
});
}
void
getMaskedImage
(
BuildContext
context
)
{
if
(
maskTabLive
.
data
==
null
)
{
Toast
.
show
(
context
,
"还没有选中标签哦~"
);
return
;
}
BaseCenterPicker
()
..
setPicker
(
BaseLoadingItem
(
"加载中..."
))
..
show
(
context
);
HomeRepo
.
getInstance
()
.
getMaskInfo
(
imageId
,
maskExplain
[
maskTabLive
.
data
])
.
listen
((
value
)
{
if
(
value
!=
null
&&
value
.
ui
!=
null
&&
value
.
ui
.
isNotEmpty
)
{
pointItem
.
list
=
uiToList
(
value
.
ui
);
pointItem
.
drawPath
=
true
;
syncPoint
();
}
Navigator
.
pop
(
context
);
}).
onError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
print
(
error
.
toString
());
Navigator
.
pop
(
context
);
});
}
}
class
SurePicker
implements
ICenterPicker
{
...
...
lib/HomeModel/page/work/WorkPage.dart
View file @
53f3c5e8
...
...
@@ -39,9 +39,14 @@ class WorkState extends State<WorkPage> {
double
tabHeadHeight
;
double
rightAllWidth
;
double
rightTitleHeight
;
double
picScareSize
;
double
topBuf
;
double
topAdd
;
final
String
url
;
double
dragStartX
,
dragStartY
,
startTranX
,
startTranY
;
double
tapStartX
,
tapStartY
;
bool
dragMask
;
WorkView
workItem
;
WorkState
(
this
.
url
,
int
id
,
int
currentIndex
)
{
_model
=
new
WorkModel
(
id
,
currentIndex
);
...
...
@@ -145,21 +150,28 @@ class WorkState extends State<WorkPage> {
if
(
data
.
data
==
null
)
{
return
Container
();
}
workItem
=
WorkView
(
_model
.
pointItem
,
(
scareSize
,
top
,
topA
)
{
picScareSize
=
scareSize
;
topBuf
=
top
;
topAdd
=
topA
;
});
return
GestureDetector
(
onVerticalDragDown:
(
details
)
{
// print(
// "DOWN ${details.localPosition.dx} ${details.localPosition.dy}"
// " ${_model.pointItem.getX()} ${_model.pointItem.getY()}"
// " ${tapStartX} ${tapStartY}");
startTranX
=
_model
.
pointItem
.
tranX
;
startTranY
=
_model
.
pointItem
.
tranY
;
dragStartX
=
details
.
localPosition
.
dx
;
dragStartY
=
details
.
localPosition
.
dy
;
},
onVerticalDragEnd:
(
details
)
{
_model
.
pointItem
.
dragEnd
(
details
);
},
onVerticalDragUpdate:
(
details
)
{
if
(
_model
.
pointItem
.
scareSize
==
1
)
{
return
;
}
_model
.
pointItem
.
setTranX
(
startTranX
-
(
details
.
localPosition
.
dx
-
dragStartX
));
_model
.
pointItem
.
setTranY
(
startTranY
-
(
details
.
localPosition
.
dy
-
dragStartY
));
_model
.
pointItem
.
drag
(
details
,
startTranX
,
dragStartX
,
startTranY
,
dragStartY
,
dragMask
);
_model
.
syncPoint
();
},
onTap:
()
{
...
...
@@ -169,6 +181,9 @@ class WorkState extends State<WorkPage> {
onTapDown:
(
details
)
{
tapStartX
=
details
.
localPosition
.
dx
;
tapStartY
=
details
.
localPosition
.
dy
;
dragMask
=
workItem
.
calutePath
(
Offset
(
tapStartX
,
tapStartY
));
_model
.
pointItem
.
down
(
tapStartX
,
tapStartY
,
dragMask
);
print
(
"gesture onTap down"
);
},
// onDoubleTap: () {
...
...
@@ -188,17 +203,92 @@ class WorkState extends State<WorkPage> {
child:
Container
(
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
CustomPaint
(
painter:
WorkView
(
_model
.
pointItem
)
),
child:
CustomPaint
(
painter:
workItem
),
)));
},
),
Positioned
(
left:
0
,
top:
50
,
child:
Container
(
width:
double
.
maxFinite
,
height:
30
,
color:
Colors
.
blueGrey
,
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
<
Widget
>[
StreamBuilder
<
bool
>(
stream:
_model
.
rectMaskLive
.
stream
,
initialData:
_model
.
rectMaskLive
.
data
,
builder:
(
con
,
data
)
{
if
(
data
.
data
==
null
)
{
return
Container
();
}
return
Row
(
children:
<
Widget
>[
Container
(
margin:
EdgeInsets
.
only
(
left:
16
),
child:
baseText
(
"点标记"
,
15
,
Colors
.
white
),
),
Switch
(
value:
_model
.
pointItem
.
rectModel
,
activeColor:
Colors
.
blue
,
onChanged:
(
value
)
{
_model
.
pointItem
.
rectModel
=
value
;
_model
.
syncPoint
();
_model
.
rectMaskLive
.
notifyView
(
value
);
},
),
Container
(
child:
baseText
(
"拉框标记"
,
15
,
Colors
.
white
),
),
],
);
},
),
Container
(
margin:
EdgeInsets
.
only
(
left:
16
),
child:
FlatButton
(
onPressed:
()
{
_model
.
showMaskTabSelect
(
context
);
},
child:
Container
(
height:
double
.
maxFinite
,
alignment:
Alignment
.
center
,
color:
Colors
.
amberAccent
,
child:
baseText
(
"选取标签"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
Container
(
alignment:
Alignment
.
centerLeft
,
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
child:
StreamBuilder
(
stream:
_model
.
maskTabLive
.
stream
,
initialData:
_model
.
maskTabLive
.
data
,
builder:
(
con
,
data
)
{
if
(
data
.
data
==
null
)
{
return
baseText
(
"还没有选着标签哦"
,
15
,
Colors
.
white
);
}
return
baseText
(
"选着的标签:
${data.data}
"
,
15
,
Colors
.
white
);
},
),
),
),
],
),
),
),
Container
(
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
alignment:
Alignment
.
topCenter
,
child:
Container
(
width:
double
.
maxFinite
,
height:
8
0
,
height:
5
0
,
color:
Colors
.
black54
,
child:
Row
(
children:
<
Widget
>[
...
...
@@ -229,6 +319,21 @@ class WorkState extends State<WorkPage> {
),
),
),
Expanded
(
child:
FlatButton
(
onPressed:
()
{
_model
.
pointItem
.
reset
();
_model
.
syncPoint
();
},
child:
Container
(
color:
Colors
.
green
,
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
alignment:
Alignment
.
center
,
child:
baseText
(
"清除所有"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
FlatButton
(
onPressed:
()
{
...
...
@@ -240,12 +345,12 @@ class WorkState extends State<WorkPage> {
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
alignment:
Alignment
.
center
,
child:
baseText
(
"撤销
标记
"
,
15
,
Colors
.
white
),
child:
baseText
(
"撤销
一步
"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
FlatButton
(
child:
FlatButton
(
onPressed:
()
{
if
(
_model
.
pointItem
.
scareSize
==
1
)
{
_model
.
pointItem
.
setScareSize
(
3
);
...
...
@@ -263,7 +368,7 @@ class WorkState extends State<WorkPage> {
},
child:
Container
(
width:
double
.
maxFinite
,
height:
double
.
maxFinite
,
height:
double
.
maxFinite
,
color:
Colors
.
yellow
,
alignment:
Alignment
.
center
,
child:
baseText
(
"放大&缩小"
,
15
,
Colors
.
white
),
...
...
@@ -273,7 +378,20 @@ class WorkState extends State<WorkPage> {
Expanded
(
child:
FlatButton
(
onPressed:
()
{
_model
.
saveImage
(
context
);
_model
.
getMaskedImage
(
context
);
},
child:
Container
(
color:
Colors
.
purple
,
alignment:
Alignment
.
center
,
child:
baseText
(
"获取历史标记结果"
,
15
,
Colors
.
white
),
),
),
),
Expanded
(
child:
FlatButton
(
onPressed:
()
{
_model
.
saveDrawImage
(
context
,
picScareSize
,
topBuf
,
topAdd
);
},
child:
Container
(
color:
Colors
.
pink
,
...
...
lib/HomeModel/page/work/temp.dart
View file @
53f3c5e8
...
...
@@ -3,6 +3,8 @@
* @date 2019-11-14
**/
import
'package:flutter/cupertino.dart'
;
const
String
TEST_IMAGES
=
"""
{
"
pic_list
": [
...
...
@@ -265,3 +267,33 @@ const Map<String, String> EXPLAN = {
"
brows_spacing
": "
两眉间距
",
"
face
": "
脸型
",
};
const List<String> maskTabList = ["
左双眼皮
", "
右双眼皮
"];
const Map<String, String> maskExplain = {
"
左双眼皮
": "
left_eyelid
",
"
右双眼皮
": "
right_eyelid
"
};
List<Offset> uiToList(String string) {
var split = string.split("
:
");
List<Offset> list = [];
for (int i = 0; i < split.length; i += 2) {
list.add(Offset(
int.parse(split[i]).toDouble(), int.parse(split[i + 1]).toDouble()));
}
return list;
}
String listToUi(List<Offset> list) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < list.length; i++) {
stringBuffer.write("
$
{
list
[
i
].
dx
.
toInt
()}
");
stringBuffer.write("
:
");
stringBuffer.write("
$
{
list
[
i
].
dy
.
toInt
()}
");
if (i != list.length - 1) {
stringBuffer.write("
:
");
}
}
return stringBuffer.toString();
}
lib/HomeModel/service/HomeRepo.dart
View file @
53f3c5e8
...
...
@@ -3,13 +3,16 @@
* @date 2019-11-07
**/
import
'dart:convert'
;
import
'dart:io'
;
import
'package:dio/dio.dart'
;
import
'package:example_flutter/HomeModel/page/work/temp.dart'
;
import
'package:example_flutter/HomeModel/service/remote/api/HomeApi.serv.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/AllTabBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/DeleteResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageAiBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/ImageResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/MaskResultBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/PutImageDataBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/TotalImageBean.dart'
;
import
'package:example_flutter/HomeModel/service/remote/entity/UploadResultBean.dart'
;
...
...
@@ -87,8 +90,45 @@ class HomeRepo {
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
parsePutImageBean
,
value
.
toString
()));
return
Observable
.
fromFuture
(
compute
(
parsePutImageBean
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
});
}
Observable
<
MaskResultBean
>
maskImage
(
String
path
,
int
id
,
String
tag
,
String
ui
)
{
var
name
=
path
.
substring
(
path
.
lastIndexOf
(
"/"
)
+
1
,
path
.
length
);
FormData
formData
=
new
FormData
.
from
({
"file"
:
new
UploadFileInfo
(
new
File
(
path
),
name
),
"tag"
:
tag
,
"ui"
:
ui
});
return
Observable
.
fromFuture
(
DioUtil
.
getInstance
()
.
getDio
()
.
post
(
'maskimages/
${id}
/'
,
data:
formData
))
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
parseMaskResult
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
});
}
Observable
<
MaskResultBean
>
getMaskInfo
(
int
id
,
String
tag
)
{
return
Observable
.
fromFuture
(
DioUtil
.
getInstance
()
.
getDio
()
.
get
(
'maskimages/
${id}
/'
,
queryParameters:
{
"tag"
:
tag
}))
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
parseMaskResult
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
...
...
@@ -101,7 +141,8 @@ class HomeRepo {
.
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Observable
.
fromFuture
(
compute
(
parseDeleteResult
,
value
.
toString
()));
return
Observable
.
fromFuture
(
compute
(
parseDeleteResult
,
value
.
toString
()));
}
else
{
return
Observable
.
fromFuture
(
null
);
}
...
...
@@ -123,6 +164,10 @@ DeleteResultBean parseDeleteResult(String value) {
return
DeleteResultBean
.
fromJson
(
json
.
decode
(
value
));
}
PutImageDataBean
parsePutImageBean
(
String
value
){
PutImageDataBean
parsePutImageBean
(
String
value
)
{
return
PutImageDataBean
.
fromJson
(
json
.
decode
(
value
));
}
MaskResultBean
parseMaskResult
(
String
value
)
{
return
MaskResultBean
.
fromJson
(
json
.
decode
(
value
));
}
lib/HomeModel/service/remote/entity/MaskResultBean.dart
0 → 100644
View file @
53f3c5e8
/*
* @author lsy
* @date 2019-11-27
**/
class
MaskResultBean
{
String
picurl
;
int
otherid
;
String
tag
;
String
ui
;
MaskResultBean
({
this
.
picurl
,
this
.
otherid
,
this
.
tag
,
this
.
ui
});
MaskResultBean
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
picurl
=
json
[
'picurl'
];
otherid
=
json
[
'otherid'
];
tag
=
json
[
'tag'
];
ui
=
json
[
'ui'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'picurl'
]
=
this
.
picurl
;
data
[
'otherid'
]
=
this
.
otherid
;
data
[
'tag'
]
=
this
.
tag
;
data
[
'ui'
]
=
this
.
ui
;
return
data
;
}
}
\ No newline at end of file
lib/UserModel/page/login/LoginPage.dart
View file @
53f3c5e8
...
...
@@ -46,6 +46,7 @@ class LoginState extends State<LoginPage> {
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
body:
Stack
(
alignment
:
AlignmentDirectional
.
topCenter
,
children:
<
Widget
>[
ConstrainedBox
(
constraints:
BoxConstraints
.
expand
(),
...
...
@@ -56,7 +57,23 @@ class LoginState extends State<LoginPage> {
fit:
BoxFit
.
cover
,
)),
),
main
()
main
(),
// Positioned(
// child: Container(
// height: 60,
// alignment: Alignment.center,
// child: FlatButton(
// onPressed: (){
// openCachce();
// },
// child: Container(
// padding: EdgeInsets.all(10),
// color: Colors.black,
// child: baseText("请把opencv.sh 和 opencv.py 移动到打开的目标文件夹下!! 点我打开目标文件夹", 15, Colors.redAccent),
// ),
// ),
// ),
// ),
],
));
}
...
...
lib/commonModel/base/BaseComponent.dart
View file @
53f3c5e8
...
...
@@ -3,19 +3,44 @@
* @date 2019-10-13
**/
import
'package:example_flutter/commonModel/toast/toast.dart'
;
import
'package:example_flutter/res/value/ALColors.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:flutter_svg/svg.dart'
;
MethodChannel
channel
=
new
MethodChannel
(
"plugins.flutter.io/path_provider"
);
MethodChannel
channel
=
new
MethodChannel
(
"plugins.flutter.io/path_provider"
);
MethodChannel
opencv
=
new
MethodChannel
(
"lsyyy"
);
Future
getTempDir
(
){
Future
getTempDir
(
)
{
return
channel
.
invokeMethod
(
"getTemporaryDirectory"
);
}
Future
openCachce
(
){
void
getTempDirX
(
BuildContext
context
,
Function
(
String
dir
)
f
)
{
getTempDir
().
then
((
value
)
{
f
(
value
);
}).
catchError
((
error
)
{
Toast
.
show
(
context
,
error
.
toString
());
print
(
error
.
toString
());
});
}
Future
<
String
>
toImage
(
List
<
int
>
arr
,
String
path
,
String
needPath
)
{
return
channel
.
invokeMethod
(
"toImage"
,
{
"path"
:
path
,
"list"
:
arr
,
"needPath"
:
needPath
});
}
Future
<
String
>
opencvMethod
(
String
readPath
,
String
writePath
)
{
return
channel
.
invokeMethod
(
"opencvImg"
,
[
readPath
,
writePath
]);
}
Future
<
String
>
toImageTest
(
List
<
int
>
arr
,
String
path
,
String
needPath
)
{
return
channel
.
invokeMethod
(
"toImageTest"
,
{
"path"
:
path
,
"list"
:
arr
,
"needPath"
:
needPath
});
}
Future
openCachce
(
)
{
return
channel
.
invokeMethod
(
"openCache"
);
}
...
...
lib/main.dart
View file @
53f3c5e8
...
...
@@ -13,6 +13,7 @@
// limitations under the License.
import
'package:example_flutter/Annotations/RouterCenterRestore.mark.dart'
;
import
'package:example_flutter/commonModel/base/BaseComponent.dart'
;
import
'package:flutter/foundation.dart'
show
debugDefaultTargetPlatformOverride
;
import
'package:flutter/material.dart'
;
...
...
@@ -31,7 +32,7 @@ class MyApp extends StatelessWidget {
@override
Widget
build
(
BuildContext
context
)
{
return
MaterialApp
(
showSemanticsDebugger:
false
,
showSemanticsDebugger:
false
,
title:
'Flutter Demo'
,
theme:
ThemeData
(
primarySwatch:
Colors
.
blue
,
...
...
macos/Runner.xcodeproj/project.pbxproj
View file @
53f3c5e8
...
...
@@ -21,6 +21,62 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
183FB03A238D09880011D0AB
/* MyPlugin.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB039238D09880011D0AB
/* MyPlugin.swift */
;
};
183FB042238D10EE0011D0AB
/* AVFoundation.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB041238D10EE0011D0AB
/* AVFoundation.framework */
;
};
183FB044238D10F50011D0AB
/* CoreImage.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB043238D10F50011D0AB
/* CoreImage.framework */
;
};
183FB048238D11020011D0AB
/* CoreGraphics.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB047238D11020011D0AB
/* CoreGraphics.framework */
;
};
183FB04A238D11090011D0AB
/* QuartzCore.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB049238D11090011D0AB
/* QuartzCore.framework */
;
};
183FB04C238D11100011D0AB
/* Accelerate.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB04B238D11100011D0AB
/* Accelerate.framework */
;
};
183FB04E238D207E0011D0AB
/* Cv.mm in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
183FB04D238D207E0011D0AB
/* Cv.mm */
;
};
18C61B4F238E1E470098E1C1
/* libopencv_aruco.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B33238E1E300098E1C1
/* libopencv_aruco.4.1.2.dylib */
;
};
18C61B50238E1E550098E1C1
/* libopencv_bgsegm.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B45238E1E310098E1C1
/* libopencv_bgsegm.4.1.2.dylib */
;
};
18C61B51238E1E820098E1C1
/* libopencv_calib3d.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B46238E1E310098E1C1
/* libopencv_calib3d.4.1.2.dylib */
;
};
18C61B52238E1E820098E1C1
/* libopencv_bioinspired.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B14238E1E2F0098E1C1
/* libopencv_bioinspired.4.1.2.dylib */
;
};
18C61B53238E1E820098E1C1
/* libopencv_ccalib.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AF2238E1E2E0098E1C1
/* libopencv_ccalib.4.1.2.dylib */
;
};
18C61B54238E1E820098E1C1
/* libopencv_core.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B1E238E1E2F0098E1C1
/* libopencv_core.4.1.2.dylib */
;
};
18C61B55238E1E820098E1C1
/* libopencv_datasets.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AE9238E1E2E0098E1C1
/* libopencv_datasets.4.1.2.dylib */
;
};
18C61B56238E1E820098E1C1
/* libopencv_dnn_objdetect.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B4E238E1E310098E1C1
/* libopencv_dnn_objdetect.4.1.2.dylib */
;
};
18C61B57238E1E820098E1C1
/* libopencv_dnn_superres.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B2F238E1E300098E1C1
/* libopencv_dnn_superres.4.1.2.dylib */
;
};
18C61B58238E1E820098E1C1
/* libopencv_dnn.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B04238E1E2E0098E1C1
/* libopencv_dnn.4.1.2.dylib */
;
};
18C61B59238E1E820098E1C1
/* libopencv_dpm.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B15238E1E2F0098E1C1
/* libopencv_dpm.4.1.2.dylib */
;
};
18C61B5A238E1E820098E1C1
/* libopencv_face.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B3E238E1E300098E1C1
/* libopencv_face.4.1.2.dylib */
;
};
18C61B5B238E1E820098E1C1
/* libopencv_features2d.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B2E238E1E300098E1C1
/* libopencv_features2d.4.1.2.dylib */
;
};
18C61B5C238E1E820098E1C1
/* libopencv_flann.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B07238E1E2E0098E1C1
/* libopencv_flann.4.1.2.dylib */
;
};
18C61B5D238E1E820098E1C1
/* libopencv_freetype.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61ACD238E1E2D0098E1C1
/* libopencv_freetype.4.1.2.dylib */
;
};
18C61B5E238E1E820098E1C1
/* libopencv_fuzzy.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B03238E1E2E0098E1C1
/* libopencv_fuzzy.4.1.2.dylib */
;
};
18C61B5F238E1E820098E1C1
/* libopencv_hfs.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B2B238E1E2F0098E1C1
/* libopencv_hfs.4.1.2.dylib */
;
};
18C61B60238E1E820098E1C1
/* libopencv_gapi.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B13238E1E2F0098E1C1
/* libopencv_gapi.4.1.2.dylib */
;
};
18C61B61238E1E820098E1C1
/* libopencv_highgui.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B23238E1E2F0098E1C1
/* libopencv_highgui.4.1.2.dylib */
;
};
18C61B62238E1E820098E1C1
/* libopencv_img_hash.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B3F238E1E300098E1C1
/* libopencv_img_hash.4.1.2.dylib */
;
};
18C61B63238E1EDB0098E1C1
/* libopencv_xphoto.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AEA238E1E2E0098E1C1
/* libopencv_xphoto.4.1.2.dylib */
;
};
18C61B64238E1EDB0098E1C1
/* libopencv_ximgproc.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B35238E1E300098E1C1
/* libopencv_ximgproc.4.1.2.dylib */
;
};
18C61B65238E1EDB0098E1C1
/* libopencv_xobjdetect.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B1A238E1E2F0098E1C1
/* libopencv_xobjdetect.4.1.2.dylib */
;
};
18C61B66238E1EDB0098E1C1
/* libopencv_xfeatures2d.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AEE238E1E2E0098E1C1
/* libopencv_xfeatures2d.4.1.2.dylib */
;
};
18C61B67238E1EDB0098E1C1
/* libopencv_videostab.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B12238E1E2F0098E1C1
/* libopencv_videostab.4.1.2.dylib */
;
};
18C61B68238E1EDB0098E1C1
/* libopencv_videoio.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B34238E1E300098E1C1
/* libopencv_videoio.4.1.2.dylib */
;
};
18C61B69238E1EDB0098E1C1
/* libopencv_tracking.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AD9238E1E2D0098E1C1
/* libopencv_tracking.4.1.2.dylib */
;
};
18C61B6A238E1EDB0098E1C1
/* libopencv_video.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AF3238E1E2E0098E1C1
/* libopencv_video.4.1.2.dylib */
;
};
18C61B6B238E1EDB0098E1C1
/* libopencv_text.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AFE238E1E2E0098E1C1
/* libopencv_text.4.1.2.dylib */
;
};
18C61B6C238E1EDB0098E1C1
/* libopencv_surface_matching.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B48238E1E310098E1C1
/* libopencv_surface_matching.4.1.2.dylib */
;
};
18C61B6D238E1EDB0098E1C1
/* libopencv_superres.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B21238E1E2F0098E1C1
/* libopencv_superres.4.1.2.dylib */
;
};
18C61B6E238E1EDB0098E1C1
/* libopencv_structured_light.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B1F238E1E2F0098E1C1
/* libopencv_structured_light.4.1.2.dylib */
;
};
18C61B6F238E1EDB0098E1C1
/* libopencv_stitching.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B2D238E1E300098E1C1
/* libopencv_stitching.4.1.2.dylib */
;
};
18C61B70238E1EDB0098E1C1
/* libopencv_stereo.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B43238E1E310098E1C1
/* libopencv_stereo.4.1.2.dylib */
;
};
18C61B71238E1EDB0098E1C1
/* libopencv_shape.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61ADA238E1E2D0098E1C1
/* libopencv_shape.4.1.2.dylib */
;
};
18C61B72238E1EDB0098E1C1
/* libopencv_sfm.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B1C238E1E2F0098E1C1
/* libopencv_sfm.4.1.2.dylib */
;
};
18C61B73238E1EDB0098E1C1
/* libopencv_rgbd.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B2C238E1E300098E1C1
/* libopencv_rgbd.4.1.2.dylib */
;
};
18C61B74238E1EDB0098E1C1
/* libopencv_saliency.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AEC238E1E2E0098E1C1
/* libopencv_saliency.4.1.2.dylib */
;
};
18C61B75238E1EDB0098E1C1
/* libopencv_reg.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AD7238E1E2D0098E1C1
/* libopencv_reg.4.1.2.dylib */
;
};
18C61B76238E1EDB0098E1C1
/* libopencv_quality.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AFF238E1E2E0098E1C1
/* libopencv_quality.4.1.2.dylib */
;
};
18C61B77238E1EDB0098E1C1
/* libopencv_plot.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61ADE238E1E2E0098E1C1
/* libopencv_plot.4.1.2.dylib */
;
};
18C61B78238E1EDB0098E1C1
/* libopencv_photo.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AD5238E1E2D0098E1C1
/* libopencv_photo.4.1.2.dylib */
;
};
18C61B79238E1EDB0098E1C1
/* libopencv_phase_unwrapping.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61AF0238E1E2E0098E1C1
/* libopencv_phase_unwrapping.4.1.2.dylib */
;
};
18C61B7A238E1EDB0098E1C1
/* libopencv_optflow.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B42238E1E310098E1C1
/* libopencv_optflow.4.1.2.dylib */
;
};
18C61B7B238E1EDB0098E1C1
/* libopencv_objdetect.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B3D238E1E300098E1C1
/* libopencv_objdetect.4.1.2.dylib */
;
};
18C61B7C238E1EDB0098E1C1
/* libopencv_ml.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61ACC238E1E2D0098E1C1
/* libopencv_ml.4.1.2.dylib */
;
};
18C61B7D238E1EDB0098E1C1
/* libopencv_line_descriptor.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B1B238E1E2F0098E1C1
/* libopencv_line_descriptor.4.1.2.dylib */
;
};
18C61B7E238E1EDB0098E1C1
/* libopencv_imgproc.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B02238E1E2E0098E1C1
/* libopencv_imgproc.4.1.2.dylib */
;
};
18C61B7F238E1EDB0098E1C1
/* libopencv_imgcodecs.4.1.2.dylib in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
18C61B32238E1E300098E1C1
/* libopencv_imgcodecs.4.1.2.dylib */
;
};
335BBD1B22A9A15E00E9071D
/* GeneratedPluginRegistrant.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
335BBD1A22A9A15E00E9071D
/* GeneratedPluginRegistrant.swift */
;
};
33CC10F12044A3C60003C045
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
33CC10F02044A3C60003C045
/* AppDelegate.swift */
;
};
33CC10F32044A3C60003C045
/* Assets.xcassets in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
33CC10F22044A3C60003C045
/* Assets.xcassets */
;
};
...
...
@@ -59,6 +115,141 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
183FB039238D09880011D0AB
/* MyPlugin.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MyPlugin.swift
;
sourceTree
=
"<group>"
;
};
183FB03D238D0D180011D0AB
/* Runner-Bridging-Header.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"Runner-Bridging-Header.h"
;
sourceTree
=
"<group>"
;
};
183FB041238D10EE0011D0AB
/* AVFoundation.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
name
=
AVFoundation.framework
;
path
=
System/Library/Frameworks/AVFoundation.framework
;
sourceTree
=
SDKROOT
;
};
183FB043238D10F50011D0AB
/* CoreImage.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
name
=
CoreImage.framework
;
path
=
System/Library/Frameworks/CoreImage.framework
;
sourceTree
=
SDKROOT
;
};
183FB045238D10FC0011D0AB
/* libc++.tbd */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"sourcecode.text-based-dylib-definition"
;
name
=
"libc++.tbd"
;
path
=
"usr/lib/libc++.tbd"
;
sourceTree
=
SDKROOT
;
};
183FB047238D11020011D0AB
/* CoreGraphics.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
name
=
CoreGraphics.framework
;
path
=
System/Library/Frameworks/CoreGraphics.framework
;
sourceTree
=
SDKROOT
;
};
183FB049238D11090011D0AB
/* QuartzCore.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
name
=
QuartzCore.framework
;
path
=
System/Library/Frameworks/QuartzCore.framework
;
sourceTree
=
SDKROOT
;
};
183FB04B238D11100011D0AB
/* Accelerate.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
name
=
Accelerate.framework
;
path
=
System/Library/Frameworks/Accelerate.framework
;
sourceTree
=
SDKROOT
;
};
183FB04D238D207E0011D0AB
/* Cv.mm */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.cpp.objcpp
;
path
=
Cv.mm
;
sourceTree
=
"<group>"
;
};
183FB04F238D20870011D0AB
/* Cv.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
Cv.h
;
sourceTree
=
"<group>"
;
};
18C61AC9238E1E2D0098E1C1
/* libopencv_highgui.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_highgui.a
;
path
=
../../../aar/opencv/libopencv_highgui.a
;
sourceTree
=
"<group>"
;
};
18C61ACA238E1E2D0098E1C1
/* libopencv_img_hash.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_img_hash.a
;
path
=
../../../aar/opencv/libopencv_img_hash.a
;
sourceTree
=
"<group>"
;
};
18C61ACB238E1E2D0098E1C1
/* liblibjpeg-turbo.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
"liblibjpeg-turbo.a"
;
path
=
"../../../aar/opencv/liblibjpeg-turbo.a"
;
sourceTree
=
"<group>"
;
};
18C61ACC238E1E2D0098E1C1
/* libopencv_ml.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_ml.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_ml.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61ACD238E1E2D0098E1C1
/* libopencv_freetype.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_freetype.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_freetype.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61ACE238E1E2D0098E1C1
/* libopencv_features2d.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_features2d.a
;
path
=
../../../aar/opencv/libopencv_features2d.a
;
sourceTree
=
"<group>"
;
};
18C61ACF238E1E2D0098E1C1
/* libopencv_objdetect.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_objdetect.a
;
path
=
../../../aar/opencv/libopencv_objdetect.a
;
sourceTree
=
"<group>"
;
};
18C61AD0238E1E2D0098E1C1
/* libopencv_reg.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_reg.a
;
path
=
../../../aar/opencv/libopencv_reg.a
;
sourceTree
=
"<group>"
;
};
18C61AD1238E1E2D0098E1C1
/* libopencv_shape.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_shape.a
;
path
=
../../../aar/opencv/libopencv_shape.a
;
sourceTree
=
"<group>"
;
};
18C61AD2238E1E2D0098E1C1
/* libopencv_freetype.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_freetype.a
;
path
=
../../../aar/opencv/libopencv_freetype.a
;
sourceTree
=
"<group>"
;
};
18C61AD3238E1E2D0098E1C1
/* libopencv_dnn.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_dnn.a
;
path
=
../../../aar/opencv/libopencv_dnn.a
;
sourceTree
=
"<group>"
;
};
18C61AD4238E1E2D0098E1C1
/* libopencv_surface_matching.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_surface_matching.a
;
path
=
../../../aar/opencv/libopencv_surface_matching.a
;
sourceTree
=
"<group>"
;
};
18C61AD5238E1E2D0098E1C1
/* libopencv_photo.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_photo.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_photo.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AD6238E1E2D0098E1C1
/* libsimple_pipeline.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libsimple_pipeline.a
;
path
=
../../../aar/opencv/libsimple_pipeline.a
;
sourceTree
=
"<group>"
;
};
18C61AD7238E1E2D0098E1C1
/* libopencv_reg.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_reg.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_reg.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AD8238E1E2D0098E1C1
/* libopencv_tracking.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_tracking.a
;
path
=
../../../aar/opencv/libopencv_tracking.a
;
sourceTree
=
"<group>"
;
};
18C61AD9238E1E2D0098E1C1
/* libopencv_tracking.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_tracking.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_tracking.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61ADA238E1E2D0098E1C1
/* libopencv_shape.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_shape.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_shape.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61ADB238E1E2D0098E1C1
/* libopencv_ccalib.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_ccalib.a
;
path
=
../../../aar/opencv/libopencv_ccalib.a
;
sourceTree
=
"<group>"
;
};
18C61ADC238E1E2E0098E1C1
/* libopencv_core.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_core.a
;
path
=
../../../aar/opencv/libopencv_core.a
;
sourceTree
=
"<group>"
;
};
18C61ADD238E1E2E0098E1C1
/* libmultiview.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libmultiview.a
;
path
=
../../../aar/opencv/libmultiview.a
;
sourceTree
=
"<group>"
;
};
18C61ADE238E1E2E0098E1C1
/* libopencv_plot.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_plot.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_plot.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AE3238E1E2E0098E1C1
/* cv2.cpython-37m-darwin.so */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.bundle"
;
path
=
"cv2.cpython-37m-darwin.so"
;
sourceTree
=
"<group>"
;
};
18C61AE4238E1E2E0098E1C1
/* config.py */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.script.python
;
path
=
config.py
;
sourceTree
=
"<group>"
;
};
18C61AE5238E1E2E0098E1C1
/* __init__.py */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.script.python
;
path
=
__init__.py
;
sourceTree
=
"<group>"
;
};
18C61AE6238E1E2E0098E1C1
/* load_config_py3.py */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.script.python
;
path
=
load_config_py3.py
;
sourceTree
=
"<group>"
;
};
18C61AE7238E1E2E0098E1C1
/* load_config_py2.py */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.script.python
;
path
=
load_config_py2.py
;
sourceTree
=
"<group>"
;
};
18C61AE8238E1E2E0098E1C1
/* config-3.7.py */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.script.python
;
path
=
"config-3.7.py"
;
sourceTree
=
"<group>"
;
};
18C61AE9238E1E2E0098E1C1
/* libopencv_datasets.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_datasets.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_datasets.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AEA238E1E2E0098E1C1
/* libopencv_xphoto.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_xphoto.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_xphoto.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AEB238E1E2E0098E1C1
/* libippicv.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libippicv.a
;
path
=
../../../aar/opencv/libippicv.a
;
sourceTree
=
"<group>"
;
};
18C61AEC238E1E2E0098E1C1
/* libopencv_saliency.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_saliency.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_saliency.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AED238E1E2E0098E1C1
/* libopencv_plot.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_plot.a
;
path
=
../../../aar/opencv/libopencv_plot.a
;
sourceTree
=
"<group>"
;
};
18C61AEE238E1E2E0098E1C1
/* libopencv_xfeatures2d.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_xfeatures2d.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_xfeatures2d.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AEF238E1E2E0098E1C1
/* libopencv_bioinspired.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_bioinspired.a
;
path
=
../../../aar/opencv/libopencv_bioinspired.a
;
sourceTree
=
"<group>"
;
};
18C61AF0238E1E2E0098E1C1
/* libopencv_phase_unwrapping.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_phase_unwrapping.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_phase_unwrapping.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AF1238E1E2E0098E1C1
/* libittnotify.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libittnotify.a
;
path
=
../../../aar/opencv/libittnotify.a
;
sourceTree
=
"<group>"
;
};
18C61AF2238E1E2E0098E1C1
/* libopencv_ccalib.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_ccalib.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_ccalib.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AF3238E1E2E0098E1C1
/* libopencv_video.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_video.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_video.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AF4238E1E2E0098E1C1
/* libnumeric.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libnumeric.a
;
path
=
../../../aar/opencv/libnumeric.a
;
sourceTree
=
"<group>"
;
};
18C61AF5238E1E2E0098E1C1
/* libopencv_fuzzy.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_fuzzy.a
;
path
=
../../../aar/opencv/libopencv_fuzzy.a
;
sourceTree
=
"<group>"
;
};
18C61AF6238E1E2E0098E1C1
/* libopencv_rgbd.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_rgbd.a
;
path
=
../../../aar/opencv/libopencv_rgbd.a
;
sourceTree
=
"<group>"
;
};
18C61AF7238E1E2E0098E1C1
/* libopencv_superres.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_superres.a
;
path
=
../../../aar/opencv/libopencv_superres.a
;
sourceTree
=
"<group>"
;
};
18C61AFA238E1E2E0098E1C1
/* OpenCVModules-release.cmake */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text
;
path
=
"OpenCVModules-release.cmake"
;
sourceTree
=
"<group>"
;
};
18C61AFB238E1E2E0098E1C1
/* OpenCVConfig-version.cmake */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text
;
path
=
"OpenCVConfig-version.cmake"
;
sourceTree
=
"<group>"
;
};
18C61AFC238E1E2E0098E1C1
/* OpenCVConfig.cmake */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text
;
path
=
OpenCVConfig.cmake
;
sourceTree
=
"<group>"
;
};
18C61AFD238E1E2E0098E1C1
/* OpenCVModules.cmake */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text
;
path
=
OpenCVModules.cmake
;
sourceTree
=
"<group>"
;
};
18C61AFE238E1E2E0098E1C1
/* libopencv_text.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_text.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_text.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61AFF238E1E2E0098E1C1
/* libopencv_quality.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_quality.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_quality.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B00238E1E2E0098E1C1
/* libippiw.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libippiw.a
;
path
=
../../../aar/opencv/libippiw.a
;
sourceTree
=
"<group>"
;
};
18C61B01238E1E2E0098E1C1
/* libopencv_line_descriptor.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_line_descriptor.a
;
path
=
../../../aar/opencv/libopencv_line_descriptor.a
;
sourceTree
=
"<group>"
;
};
18C61B02238E1E2E0098E1C1
/* libopencv_imgproc.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_imgproc.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_imgproc.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B03238E1E2E0098E1C1
/* libopencv_fuzzy.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_fuzzy.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_fuzzy.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B04238E1E2E0098E1C1
/* libopencv_dnn.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_dnn.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_dnn.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B05238E1E2E0098E1C1
/* libade.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libade.a
;
path
=
../../../aar/opencv/libade.a
;
sourceTree
=
"<group>"
;
};
18C61B06238E1E2E0098E1C1
/* libopencv_optflow.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_optflow.a
;
path
=
../../../aar/opencv/libopencv_optflow.a
;
sourceTree
=
"<group>"
;
};
18C61B07238E1E2E0098E1C1
/* libopencv_flann.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_flann.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_flann.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B08238E1E2E0098E1C1
/* libopencv_aruco.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_aruco.a
;
path
=
../../../aar/opencv/libopencv_aruco.a
;
sourceTree
=
"<group>"
;
};
18C61B09238E1E2F0098E1C1
/* libopencv_video.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_video.a
;
path
=
../../../aar/opencv/libopencv_video.a
;
sourceTree
=
"<group>"
;
};
18C61B0B238E1E2F0098E1C1
/* opencv4.pc */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text
;
path
=
opencv4.pc
;
sourceTree
=
"<group>"
;
};
18C61B0C238E1E2F0098E1C1
/* libopencv_dnn_superres.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_dnn_superres.a
;
path
=
../../../aar/opencv/libopencv_dnn_superres.a
;
sourceTree
=
"<group>"
;
};
18C61B0D238E1E2F0098E1C1
/* liblibwebp.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
liblibwebp.a
;
path
=
../../../aar/opencv/liblibwebp.a
;
sourceTree
=
"<group>"
;
};
18C61B0E238E1E2F0098E1C1
/* libopencv_text.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_text.a
;
path
=
../../../aar/opencv/libopencv_text.a
;
sourceTree
=
"<group>"
;
};
18C61B0F238E1E2F0098E1C1
/* libopencv_imgproc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_imgproc.a
;
path
=
../../../aar/opencv/libopencv_imgproc.a
;
sourceTree
=
"<group>"
;
};
18C61B10238E1E2F0098E1C1
/* libopencv_xfeatures2d.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_xfeatures2d.a
;
path
=
../../../aar/opencv/libopencv_xfeatures2d.a
;
sourceTree
=
"<group>"
;
};
18C61B11238E1E2F0098E1C1
/* libopencv_phase_unwrapping.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_phase_unwrapping.a
;
path
=
../../../aar/opencv/libopencv_phase_unwrapping.a
;
sourceTree
=
"<group>"
;
};
18C61B12238E1E2F0098E1C1
/* libopencv_videostab.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_videostab.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_videostab.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B13238E1E2F0098E1C1
/* libopencv_gapi.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_gapi.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_gapi.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B14238E1E2F0098E1C1
/* libopencv_bioinspired.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_bioinspired.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_bioinspired.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B15238E1E2F0098E1C1
/* libopencv_dpm.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_dpm.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_dpm.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B16238E1E2F0098E1C1
/* libopencv_photo.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_photo.a
;
path
=
../../../aar/opencv/libopencv_photo.a
;
sourceTree
=
"<group>"
;
};
18C61B17238E1E2F0098E1C1
/* libopencv_structured_light.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_structured_light.a
;
path
=
../../../aar/opencv/libopencv_structured_light.a
;
sourceTree
=
"<group>"
;
};
18C61B18238E1E2F0098E1C1
/* libopencv_calib3d.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_calib3d.a
;
path
=
../../../aar/opencv/libopencv_calib3d.a
;
sourceTree
=
"<group>"
;
};
18C61B19238E1E2F0098E1C1
/* libopencv_stitching.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_stitching.a
;
path
=
../../../aar/opencv/libopencv_stitching.a
;
sourceTree
=
"<group>"
;
};
18C61B1A238E1E2F0098E1C1
/* libopencv_xobjdetect.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_xobjdetect.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_xobjdetect.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B1B238E1E2F0098E1C1
/* libopencv_line_descriptor.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_line_descriptor.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_line_descriptor.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B1C238E1E2F0098E1C1
/* libopencv_sfm.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_sfm.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_sfm.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B1D238E1E2F0098E1C1
/* libcorrespondence.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libcorrespondence.a
;
path
=
../../../aar/opencv/libcorrespondence.a
;
sourceTree
=
"<group>"
;
};
18C61B1E238E1E2F0098E1C1
/* libopencv_core.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_core.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_core.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B1F238E1E2F0098E1C1
/* libopencv_structured_light.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_structured_light.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_structured_light.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B20238E1E2F0098E1C1
/* libopencv_ml.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_ml.a
;
path
=
../../../aar/opencv/libopencv_ml.a
;
sourceTree
=
"<group>"
;
};
18C61B21238E1E2F0098E1C1
/* libopencv_superres.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_superres.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_superres.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B22238E1E2F0098E1C1
/* libopencv_videoio.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_videoio.a
;
path
=
../../../aar/opencv/libopencv_videoio.a
;
sourceTree
=
"<group>"
;
};
18C61B23238E1E2F0098E1C1
/* libopencv_highgui.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_highgui.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_highgui.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B24238E1E2F0098E1C1
/* libquirc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libquirc.a
;
path
=
../../../aar/opencv/libquirc.a
;
sourceTree
=
"<group>"
;
};
18C61B27238E1E2F0098E1C1
/* libcorrespondence.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
path
=
libcorrespondence.a
;
sourceTree
=
"<group>"
;
};
18C61B28238E1E2F0098E1C1
/* libsimple_pipeline.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
path
=
libsimple_pipeline.a
;
sourceTree
=
"<group>"
;
};
18C61B29238E1E2F0098E1C1
/* libnumeric.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
path
=
libnumeric.a
;
sourceTree
=
"<group>"
;
};
18C61B2A238E1E2F0098E1C1
/* libmultiview.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
path
=
libmultiview.a
;
sourceTree
=
"<group>"
;
};
18C61B2B238E1E2F0098E1C1
/* libopencv_hfs.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_hfs.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_hfs.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B2C238E1E300098E1C1
/* libopencv_rgbd.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_rgbd.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_rgbd.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B2D238E1E300098E1C1
/* libopencv_stitching.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_stitching.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_stitching.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B2E238E1E300098E1C1
/* libopencv_features2d.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_features2d.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_features2d.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B2F238E1E300098E1C1
/* libopencv_dnn_superres.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_dnn_superres.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_dnn_superres.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B30238E1E300098E1C1
/* libopencv_datasets.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_datasets.a
;
path
=
../../../aar/opencv/libopencv_datasets.a
;
sourceTree
=
"<group>"
;
};
18C61B31238E1E300098E1C1
/* libopencv_gapi.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_gapi.a
;
path
=
../../../aar/opencv/libopencv_gapi.a
;
sourceTree
=
"<group>"
;
};
18C61B32238E1E300098E1C1
/* libopencv_imgcodecs.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_imgcodecs.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_imgcodecs.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B33238E1E300098E1C1
/* libopencv_aruco.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_aruco.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_aruco.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B34238E1E300098E1C1
/* libopencv_videoio.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_videoio.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_videoio.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B35238E1E300098E1C1
/* libopencv_ximgproc.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_ximgproc.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_ximgproc.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B36238E1E300098E1C1
/* libopencv_videostab.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_videostab.a
;
path
=
../../../aar/opencv/libopencv_videostab.a
;
sourceTree
=
"<group>"
;
};
18C61B37238E1E300098E1C1
/* libopencv_hfs.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_hfs.a
;
path
=
../../../aar/opencv/libopencv_hfs.a
;
sourceTree
=
"<group>"
;
};
18C61B38238E1E300098E1C1
/* libopencv_sfm.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_sfm.a
;
path
=
../../../aar/opencv/libopencv_sfm.a
;
sourceTree
=
"<group>"
;
};
18C61B39238E1E300098E1C1
/* libopencv_ximgproc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_ximgproc.a
;
path
=
../../../aar/opencv/libopencv_ximgproc.a
;
sourceTree
=
"<group>"
;
};
18C61B3A238E1E300098E1C1
/* libopencv_xobjdetect.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_xobjdetect.a
;
path
=
../../../aar/opencv/libopencv_xobjdetect.a
;
sourceTree
=
"<group>"
;
};
18C61B3B238E1E300098E1C1
/* libopencv_dnn_objdetect.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_dnn_objdetect.a
;
path
=
../../../aar/opencv/libopencv_dnn_objdetect.a
;
sourceTree
=
"<group>"
;
};
18C61B3C238E1E300098E1C1
/* libopencv_face.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_face.a
;
path
=
../../../aar/opencv/libopencv_face.a
;
sourceTree
=
"<group>"
;
};
18C61B3D238E1E300098E1C1
/* libopencv_objdetect.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_objdetect.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_objdetect.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B3E238E1E300098E1C1
/* libopencv_face.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_face.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_face.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B3F238E1E300098E1C1
/* libopencv_img_hash.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_img_hash.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_img_hash.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B40238E1E310098E1C1
/* libopencv_flann.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_flann.a
;
path
=
../../../aar/opencv/libopencv_flann.a
;
sourceTree
=
"<group>"
;
};
18C61B41238E1E310098E1C1
/* libopencv_imgcodecs.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_imgcodecs.a
;
path
=
../../../aar/opencv/libopencv_imgcodecs.a
;
sourceTree
=
"<group>"
;
};
18C61B42238E1E310098E1C1
/* libopencv_optflow.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_optflow.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_optflow.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B43238E1E310098E1C1
/* libopencv_stereo.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_stereo.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_stereo.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B44238E1E310098E1C1
/* liblibprotobuf.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
liblibprotobuf.a
;
path
=
../../../aar/opencv/liblibprotobuf.a
;
sourceTree
=
"<group>"
;
};
18C61B45238E1E310098E1C1
/* libopencv_bgsegm.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_bgsegm.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_bgsegm.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B46238E1E310098E1C1
/* libopencv_calib3d.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_calib3d.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_calib3d.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B47238E1E310098E1C1
/* libopencv_dpm.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_dpm.a
;
path
=
../../../aar/opencv/libopencv_dpm.a
;
sourceTree
=
"<group>"
;
};
18C61B48238E1E310098E1C1
/* libopencv_surface_matching.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_surface_matching.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_surface_matching.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
18C61B49238E1E310098E1C1
/* libopencv_stereo.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_stereo.a
;
path
=
../../../aar/opencv/libopencv_stereo.a
;
sourceTree
=
"<group>"
;
};
18C61B4A238E1E310098E1C1
/* libopencv_saliency.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_saliency.a
;
path
=
../../../aar/opencv/libopencv_saliency.a
;
sourceTree
=
"<group>"
;
};
18C61B4B238E1E310098E1C1
/* libopencv_quality.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_quality.a
;
path
=
../../../aar/opencv/libopencv_quality.a
;
sourceTree
=
"<group>"
;
};
18C61B4C238E1E310098E1C1
/* libopencv_bgsegm.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_bgsegm.a
;
path
=
../../../aar/opencv/libopencv_bgsegm.a
;
sourceTree
=
"<group>"
;
};
18C61B4D238E1E310098E1C1
/* libopencv_xphoto.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libopencv_xphoto.a
;
path
=
../../../aar/opencv/libopencv_xphoto.a
;
sourceTree
=
"<group>"
;
};
18C61B4E238E1E310098E1C1
/* libopencv_dnn_objdetect.4.1.2.dylib */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
"compiled.mach-o.dylib"
;
name
=
libopencv_dnn_objdetect.4.1.2.dylib
;
path
=
../../../aar/opencv/libopencv_dnn_objdetect.4.1.2.dylib
;
sourceTree
=
"<group>"
;
};
333000ED22D3DE5D00554162
/* Warnings.xcconfig */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.xcconfig
;
path
=
Warnings.xcconfig
;
sourceTree
=
"<group>"
;
};
335BBD1A22A9A15E00E9071D
/* GeneratedPluginRegistrant.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
GeneratedPluginRegistrant.swift
;
sourceTree
=
"<group>"
;
};
33CC10ED2044A3C60003C045
/* Flutter Desktop Example.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
"Flutter Desktop Example.app"
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
...
...
@@ -88,6 +279,60 @@
isa
=
PBXFrameworksBuildPhase
;
buildActionMask
=
2147483647
;
files
=
(
18C61B63238E1EDB0098E1C1
/* libopencv_xphoto.4.1.2.dylib in Frameworks */
,
18C61B64238E1EDB0098E1C1
/* libopencv_ximgproc.4.1.2.dylib in Frameworks */
,
18C61B65238E1EDB0098E1C1
/* libopencv_xobjdetect.4.1.2.dylib in Frameworks */
,
18C61B66238E1EDB0098E1C1
/* libopencv_xfeatures2d.4.1.2.dylib in Frameworks */
,
18C61B67238E1EDB0098E1C1
/* libopencv_videostab.4.1.2.dylib in Frameworks */
,
18C61B68238E1EDB0098E1C1
/* libopencv_videoio.4.1.2.dylib in Frameworks */
,
18C61B69238E1EDB0098E1C1
/* libopencv_tracking.4.1.2.dylib in Frameworks */
,
18C61B6A238E1EDB0098E1C1
/* libopencv_video.4.1.2.dylib in Frameworks */
,
18C61B6B238E1EDB0098E1C1
/* libopencv_text.4.1.2.dylib in Frameworks */
,
18C61B6C238E1EDB0098E1C1
/* libopencv_surface_matching.4.1.2.dylib in Frameworks */
,
18C61B6D238E1EDB0098E1C1
/* libopencv_superres.4.1.2.dylib in Frameworks */
,
18C61B6E238E1EDB0098E1C1
/* libopencv_structured_light.4.1.2.dylib in Frameworks */
,
18C61B6F238E1EDB0098E1C1
/* libopencv_stitching.4.1.2.dylib in Frameworks */
,
18C61B70238E1EDB0098E1C1
/* libopencv_stereo.4.1.2.dylib in Frameworks */
,
18C61B71238E1EDB0098E1C1
/* libopencv_shape.4.1.2.dylib in Frameworks */
,
18C61B72238E1EDB0098E1C1
/* libopencv_sfm.4.1.2.dylib in Frameworks */
,
18C61B73238E1EDB0098E1C1
/* libopencv_rgbd.4.1.2.dylib in Frameworks */
,
18C61B74238E1EDB0098E1C1
/* libopencv_saliency.4.1.2.dylib in Frameworks */
,
18C61B75238E1EDB0098E1C1
/* libopencv_reg.4.1.2.dylib in Frameworks */
,
18C61B76238E1EDB0098E1C1
/* libopencv_quality.4.1.2.dylib in Frameworks */
,
18C61B77238E1EDB0098E1C1
/* libopencv_plot.4.1.2.dylib in Frameworks */
,
18C61B78238E1EDB0098E1C1
/* libopencv_photo.4.1.2.dylib in Frameworks */
,
18C61B79238E1EDB0098E1C1
/* libopencv_phase_unwrapping.4.1.2.dylib in Frameworks */
,
18C61B7A238E1EDB0098E1C1
/* libopencv_optflow.4.1.2.dylib in Frameworks */
,
18C61B7B238E1EDB0098E1C1
/* libopencv_objdetect.4.1.2.dylib in Frameworks */
,
18C61B7C238E1EDB0098E1C1
/* libopencv_ml.4.1.2.dylib in Frameworks */
,
18C61B7D238E1EDB0098E1C1
/* libopencv_line_descriptor.4.1.2.dylib in Frameworks */
,
18C61B7E238E1EDB0098E1C1
/* libopencv_imgproc.4.1.2.dylib in Frameworks */
,
18C61B7F238E1EDB0098E1C1
/* libopencv_imgcodecs.4.1.2.dylib in Frameworks */
,
18C61B62238E1E820098E1C1
/* libopencv_img_hash.4.1.2.dylib in Frameworks */
,
18C61B61238E1E820098E1C1
/* libopencv_highgui.4.1.2.dylib in Frameworks */
,
18C61B5F238E1E820098E1C1
/* libopencv_hfs.4.1.2.dylib in Frameworks */
,
18C61B60238E1E820098E1C1
/* libopencv_gapi.4.1.2.dylib in Frameworks */
,
18C61B5E238E1E820098E1C1
/* libopencv_fuzzy.4.1.2.dylib in Frameworks */
,
18C61B5D238E1E820098E1C1
/* libopencv_freetype.4.1.2.dylib in Frameworks */
,
18C61B5C238E1E820098E1C1
/* libopencv_flann.4.1.2.dylib in Frameworks */
,
18C61B5B238E1E820098E1C1
/* libopencv_features2d.4.1.2.dylib in Frameworks */
,
18C61B5A238E1E820098E1C1
/* libopencv_face.4.1.2.dylib in Frameworks */
,
18C61B59238E1E820098E1C1
/* libopencv_dpm.4.1.2.dylib in Frameworks */
,
18C61B58238E1E820098E1C1
/* libopencv_dnn.4.1.2.dylib in Frameworks */
,
18C61B57238E1E820098E1C1
/* libopencv_dnn_superres.4.1.2.dylib in Frameworks */
,
18C61B56238E1E820098E1C1
/* libopencv_dnn_objdetect.4.1.2.dylib in Frameworks */
,
18C61B55238E1E820098E1C1
/* libopencv_datasets.4.1.2.dylib in Frameworks */
,
18C61B54238E1E820098E1C1
/* libopencv_core.4.1.2.dylib in Frameworks */
,
18C61B53238E1E820098E1C1
/* libopencv_ccalib.4.1.2.dylib in Frameworks */
,
18C61B51238E1E820098E1C1
/* libopencv_calib3d.4.1.2.dylib in Frameworks */
,
18C61B52238E1E820098E1C1
/* libopencv_bioinspired.4.1.2.dylib in Frameworks */
,
18C61B50238E1E550098E1C1
/* libopencv_bgsegm.4.1.2.dylib in Frameworks */
,
18C61B4F238E1E470098E1C1
/* libopencv_aruco.4.1.2.dylib in Frameworks */
,
183FB04C238D11100011D0AB
/* Accelerate.framework in Frameworks */
,
183FB04A238D11090011D0AB
/* QuartzCore.framework in Frameworks */
,
183FB048238D11020011D0AB
/* CoreGraphics.framework in Frameworks */
,
183FB044238D10F50011D0AB
/* CoreImage.framework in Frameworks */
,
183FB042238D10EE0011D0AB
/* AVFoundation.framework in Frameworks */
,
D73912F022F37F9E000D13A0
/* App.framework in Frameworks */
,
33D1A10422148B71006C7A3E
/* FlutterMacOS.framework in Frameworks */
,
AC484BA342B7F3D708348C24
/* Pods_Runner.framework in Frameworks */
,
...
...
@@ -97,6 +342,93 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
18C61ADF238E1E2E0098E1C1
/* python3.7 */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AE0238E1E2E0098E1C1
/* site-packages */
,
);
name
=
python3.7
;
path
=
../../../aar/opencv/python3.7
;
sourceTree
=
"<group>"
;
};
18C61AE0238E1E2E0098E1C1
/* site-packages */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AE1238E1E2E0098E1C1
/* cv2 */
,
);
path
=
"site-packages"
;
sourceTree
=
"<group>"
;
};
18C61AE1238E1E2E0098E1C1
/* cv2 */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AE2238E1E2E0098E1C1
/* python-3.7 */
,
18C61AE4238E1E2E0098E1C1
/* config.py */
,
18C61AE5238E1E2E0098E1C1
/* __init__.py */
,
18C61AE6238E1E2E0098E1C1
/* load_config_py3.py */
,
18C61AE7238E1E2E0098E1C1
/* load_config_py2.py */
,
18C61AE8238E1E2E0098E1C1
/* config-3.7.py */
,
);
path
=
cv2
;
sourceTree
=
"<group>"
;
};
18C61AE2238E1E2E0098E1C1
/* python-3.7 */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AE3238E1E2E0098E1C1
/* cv2.cpython-37m-darwin.so */
,
);
path
=
"python-3.7"
;
sourceTree
=
"<group>"
;
};
18C61AF8238E1E2E0098E1C1
/* cmake */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AF9238E1E2E0098E1C1
/* opencv4 */
,
);
name
=
cmake
;
path
=
../../../aar/opencv/cmake
;
sourceTree
=
"<group>"
;
};
18C61AF9238E1E2E0098E1C1
/* opencv4 */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AFA238E1E2E0098E1C1
/* OpenCVModules-release.cmake */
,
18C61AFB238E1E2E0098E1C1
/* OpenCVConfig-version.cmake */
,
18C61AFC238E1E2E0098E1C1
/* OpenCVConfig.cmake */
,
18C61AFD238E1E2E0098E1C1
/* OpenCVModules.cmake */
,
);
path
=
opencv4
;
sourceTree
=
"<group>"
;
};
18C61B0A238E1E2F0098E1C1
/* pkgconfig */
=
{
isa
=
PBXGroup
;
children
=
(
18C61B0B238E1E2F0098E1C1
/* opencv4.pc */
,
);
name
=
pkgconfig
;
path
=
../../../aar/opencv/pkgconfig
;
sourceTree
=
"<group>"
;
};
18C61B25238E1E2F0098E1C1
/* opencv4 */
=
{
isa
=
PBXGroup
;
children
=
(
18C61B26238E1E2F0098E1C1
/* 3rdparty */
,
);
name
=
opencv4
;
path
=
../../../aar/opencv/opencv4
;
sourceTree
=
"<group>"
;
};
18C61B26238E1E2F0098E1C1
/* 3rdparty */
=
{
isa
=
PBXGroup
;
children
=
(
18C61B27238E1E2F0098E1C1
/* libcorrespondence.a */
,
18C61B28238E1E2F0098E1C1
/* libsimple_pipeline.a */
,
18C61B29238E1E2F0098E1C1
/* libnumeric.a */
,
18C61B2A238E1E2F0098E1C1
/* libmultiview.a */
,
);
path
=
3rdparty
;
sourceTree
=
"<group>"
;
};
33BA886A226E78AF003329D5
/* Configs */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -160,6 +492,10 @@
33E51914231749380026EE4D
/* Release.entitlements */
,
33CC11242044D66E0003C045
/* Resources */
,
33BA886A226E78AF003329D5
/* Configs */
,
183FB039238D09880011D0AB
/* MyPlugin.swift */
,
183FB03D238D0D180011D0AB
/* Runner-Bridging-Header.h */
,
183FB04D238D207E0011D0AB
/* Cv.mm */
,
183FB04F238D20870011D0AB
/* Cv.h */
,
);
path
=
Runner
;
sourceTree
=
"<group>"
;
...
...
@@ -171,13 +507,132 @@
5CCA470CB94BB4ED9CED90FD
/* Pods-Runner.release.xcconfig */
,
99C221DD8322FAAED0195075
/* Pods-Runner.profile.xcconfig */
,
);
name
=
Pods
;
path
=
Pods
;
sourceTree
=
"<group>"
;
};
D73912EC22F37F3D000D13A0
/* Frameworks */
=
{
isa
=
PBXGroup
;
children
=
(
18C61AF8238E1E2E0098E1C1
/* cmake */
,
18C61B05238E1E2E0098E1C1
/* libade.a */
,
18C61B1D238E1E2F0098E1C1
/* libcorrespondence.a */
,
18C61AEB238E1E2E0098E1C1
/* libippicv.a */
,
18C61B00238E1E2E0098E1C1
/* libippiw.a */
,
18C61AF1238E1E2E0098E1C1
/* libittnotify.a */
,
18C61ACB238E1E2D0098E1C1
/* liblibjpeg-turbo.a */
,
18C61B44238E1E310098E1C1
/* liblibprotobuf.a */
,
18C61B0D238E1E2F0098E1C1
/* liblibwebp.a */
,
18C61ADD238E1E2E0098E1C1
/* libmultiview.a */
,
18C61AF4238E1E2E0098E1C1
/* libnumeric.a */
,
18C61B33238E1E300098E1C1
/* libopencv_aruco.4.1.2.dylib */
,
18C61B08238E1E2E0098E1C1
/* libopencv_aruco.a */
,
18C61B45238E1E310098E1C1
/* libopencv_bgsegm.4.1.2.dylib */
,
18C61B4C238E1E310098E1C1
/* libopencv_bgsegm.a */
,
18C61B14238E1E2F0098E1C1
/* libopencv_bioinspired.4.1.2.dylib */
,
18C61AEF238E1E2E0098E1C1
/* libopencv_bioinspired.a */
,
18C61B46238E1E310098E1C1
/* libopencv_calib3d.4.1.2.dylib */
,
18C61B18238E1E2F0098E1C1
/* libopencv_calib3d.a */
,
18C61AF2238E1E2E0098E1C1
/* libopencv_ccalib.4.1.2.dylib */
,
18C61ADB238E1E2D0098E1C1
/* libopencv_ccalib.a */
,
18C61B1E238E1E2F0098E1C1
/* libopencv_core.4.1.2.dylib */
,
18C61ADC238E1E2E0098E1C1
/* libopencv_core.a */
,
18C61AE9238E1E2E0098E1C1
/* libopencv_datasets.4.1.2.dylib */
,
18C61B30238E1E300098E1C1
/* libopencv_datasets.a */
,
18C61B4E238E1E310098E1C1
/* libopencv_dnn_objdetect.4.1.2.dylib */
,
18C61B3B238E1E300098E1C1
/* libopencv_dnn_objdetect.a */
,
18C61B2F238E1E300098E1C1
/* libopencv_dnn_superres.4.1.2.dylib */
,
18C61B0C238E1E2F0098E1C1
/* libopencv_dnn_superres.a */
,
18C61B04238E1E2E0098E1C1
/* libopencv_dnn.4.1.2.dylib */
,
18C61AD3238E1E2D0098E1C1
/* libopencv_dnn.a */
,
18C61B15238E1E2F0098E1C1
/* libopencv_dpm.4.1.2.dylib */
,
18C61B47238E1E310098E1C1
/* libopencv_dpm.a */
,
18C61B3E238E1E300098E1C1
/* libopencv_face.4.1.2.dylib */
,
18C61B3C238E1E300098E1C1
/* libopencv_face.a */
,
18C61B2E238E1E300098E1C1
/* libopencv_features2d.4.1.2.dylib */
,
18C61ACE238E1E2D0098E1C1
/* libopencv_features2d.a */
,
18C61B07238E1E2E0098E1C1
/* libopencv_flann.4.1.2.dylib */
,
18C61B40238E1E310098E1C1
/* libopencv_flann.a */
,
18C61ACD238E1E2D0098E1C1
/* libopencv_freetype.4.1.2.dylib */
,
18C61AD2238E1E2D0098E1C1
/* libopencv_freetype.a */
,
18C61B03238E1E2E0098E1C1
/* libopencv_fuzzy.4.1.2.dylib */
,
18C61AF5238E1E2E0098E1C1
/* libopencv_fuzzy.a */
,
18C61B13238E1E2F0098E1C1
/* libopencv_gapi.4.1.2.dylib */
,
18C61B31238E1E300098E1C1
/* libopencv_gapi.a */
,
18C61B2B238E1E2F0098E1C1
/* libopencv_hfs.4.1.2.dylib */
,
18C61B37238E1E300098E1C1
/* libopencv_hfs.a */
,
18C61B23238E1E2F0098E1C1
/* libopencv_highgui.4.1.2.dylib */
,
18C61AC9238E1E2D0098E1C1
/* libopencv_highgui.a */
,
18C61B3F238E1E300098E1C1
/* libopencv_img_hash.4.1.2.dylib */
,
18C61ACA238E1E2D0098E1C1
/* libopencv_img_hash.a */
,
18C61B32238E1E300098E1C1
/* libopencv_imgcodecs.4.1.2.dylib */
,
18C61B41238E1E310098E1C1
/* libopencv_imgcodecs.a */
,
18C61B02238E1E2E0098E1C1
/* libopencv_imgproc.4.1.2.dylib */
,
18C61B0F238E1E2F0098E1C1
/* libopencv_imgproc.a */
,
18C61B1B238E1E2F0098E1C1
/* libopencv_line_descriptor.4.1.2.dylib */
,
18C61B01238E1E2E0098E1C1
/* libopencv_line_descriptor.a */
,
18C61ACC238E1E2D0098E1C1
/* libopencv_ml.4.1.2.dylib */
,
18C61B20238E1E2F0098E1C1
/* libopencv_ml.a */
,
18C61B3D238E1E300098E1C1
/* libopencv_objdetect.4.1.2.dylib */
,
18C61ACF238E1E2D0098E1C1
/* libopencv_objdetect.a */
,
18C61B42238E1E310098E1C1
/* libopencv_optflow.4.1.2.dylib */
,
18C61B06238E1E2E0098E1C1
/* libopencv_optflow.a */
,
18C61AF0238E1E2E0098E1C1
/* libopencv_phase_unwrapping.4.1.2.dylib */
,
18C61B11238E1E2F0098E1C1
/* libopencv_phase_unwrapping.a */
,
18C61AD5238E1E2D0098E1C1
/* libopencv_photo.4.1.2.dylib */
,
18C61B16238E1E2F0098E1C1
/* libopencv_photo.a */
,
18C61ADE238E1E2E0098E1C1
/* libopencv_plot.4.1.2.dylib */
,
18C61AED238E1E2E0098E1C1
/* libopencv_plot.a */
,
18C61AFF238E1E2E0098E1C1
/* libopencv_quality.4.1.2.dylib */
,
18C61B4B238E1E310098E1C1
/* libopencv_quality.a */
,
18C61AD7238E1E2D0098E1C1
/* libopencv_reg.4.1.2.dylib */
,
18C61AD0238E1E2D0098E1C1
/* libopencv_reg.a */
,
18C61B2C238E1E300098E1C1
/* libopencv_rgbd.4.1.2.dylib */
,
18C61AF6238E1E2E0098E1C1
/* libopencv_rgbd.a */
,
18C61AEC238E1E2E0098E1C1
/* libopencv_saliency.4.1.2.dylib */
,
18C61B4A238E1E310098E1C1
/* libopencv_saliency.a */
,
18C61B1C238E1E2F0098E1C1
/* libopencv_sfm.4.1.2.dylib */
,
18C61B38238E1E300098E1C1
/* libopencv_sfm.a */
,
18C61ADA238E1E2D0098E1C1
/* libopencv_shape.4.1.2.dylib */
,
18C61AD1238E1E2D0098E1C1
/* libopencv_shape.a */
,
18C61B43238E1E310098E1C1
/* libopencv_stereo.4.1.2.dylib */
,
18C61B49238E1E310098E1C1
/* libopencv_stereo.a */
,
18C61B2D238E1E300098E1C1
/* libopencv_stitching.4.1.2.dylib */
,
18C61B19238E1E2F0098E1C1
/* libopencv_stitching.a */
,
18C61B1F238E1E2F0098E1C1
/* libopencv_structured_light.4.1.2.dylib */
,
18C61B17238E1E2F0098E1C1
/* libopencv_structured_light.a */
,
18C61B21238E1E2F0098E1C1
/* libopencv_superres.4.1.2.dylib */
,
18C61AF7238E1E2E0098E1C1
/* libopencv_superres.a */
,
18C61B48238E1E310098E1C1
/* libopencv_surface_matching.4.1.2.dylib */
,
18C61AD4238E1E2D0098E1C1
/* libopencv_surface_matching.a */
,
18C61AFE238E1E2E0098E1C1
/* libopencv_text.4.1.2.dylib */
,
18C61B0E238E1E2F0098E1C1
/* libopencv_text.a */
,
18C61AD9238E1E2D0098E1C1
/* libopencv_tracking.4.1.2.dylib */
,
18C61AD8238E1E2D0098E1C1
/* libopencv_tracking.a */
,
18C61AF3238E1E2E0098E1C1
/* libopencv_video.4.1.2.dylib */
,
18C61B09238E1E2F0098E1C1
/* libopencv_video.a */
,
18C61B34238E1E300098E1C1
/* libopencv_videoio.4.1.2.dylib */
,
18C61B22238E1E2F0098E1C1
/* libopencv_videoio.a */
,
18C61B12238E1E2F0098E1C1
/* libopencv_videostab.4.1.2.dylib */
,
18C61B36238E1E300098E1C1
/* libopencv_videostab.a */
,
18C61AEE238E1E2E0098E1C1
/* libopencv_xfeatures2d.4.1.2.dylib */
,
18C61B10238E1E2F0098E1C1
/* libopencv_xfeatures2d.a */
,
18C61B35238E1E300098E1C1
/* libopencv_ximgproc.4.1.2.dylib */
,
18C61B39238E1E300098E1C1
/* libopencv_ximgproc.a */
,
18C61B1A238E1E2F0098E1C1
/* libopencv_xobjdetect.4.1.2.dylib */
,
18C61B3A238E1E300098E1C1
/* libopencv_xobjdetect.a */
,
18C61AEA238E1E2E0098E1C1
/* libopencv_xphoto.4.1.2.dylib */
,
18C61B4D238E1E310098E1C1
/* libopencv_xphoto.a */
,
18C61B24238E1E2F0098E1C1
/* libquirc.a */
,
18C61AD6238E1E2D0098E1C1
/* libsimple_pipeline.a */
,
18C61B25238E1E2F0098E1C1
/* opencv4 */
,
18C61B0A238E1E2F0098E1C1
/* pkgconfig */
,
18C61ADF238E1E2E0098E1C1
/* python3.7 */
,
183FB04B238D11100011D0AB
/* Accelerate.framework */
,
183FB049238D11090011D0AB
/* QuartzCore.framework */
,
183FB047238D11020011D0AB
/* CoreGraphics.framework */
,
183FB045238D10FC0011D0AB
/* libc++.tbd */
,
183FB043238D10F50011D0AB
/* CoreImage.framework */
,
183FB041238D10EE0011D0AB
/* AVFoundation.framework */
,
A60FEE9A14B6B89D3B4B69AB
/* Pods_Runner.framework */
,
);
name
=
Frameworks
;
...
...
@@ -220,7 +675,7 @@
TargetAttributes
=
{
33CC10EC2044A3C60003C045
=
{
CreatedOnToolsVersion
=
9.2
;
LastSwiftMigration
=
09
20
;
LastSwiftMigration
=
11
20
;
ProvisioningStyle
=
Automatic
;
SystemCapabilities
=
{
com.apple.Sandbox
=
{
...
...
@@ -349,6 +804,8 @@
files
=
(
33CC11132044BFA00003C045
/* MainFlutterWindow.swift in Sources */
,
33CC10F12044A3C60003C045
/* AppDelegate.swift in Sources */
,
183FB03A238D09880011D0AB
/* MyPlugin.swift in Sources */
,
183FB04E238D207E0011D0AB
/* Cv.mm in Sources */
,
335BBD1B22A9A15E00E9071D
/* GeneratedPluginRegistrant.swift in Sources */
,
);
runOnlyForDeploymentPostprocessing
=
0
;
...
...
@@ -427,21 +884,31 @@
baseConfigurationReference
=
33E5194F232828860026EE4D
/* AppInfo.xcconfig */
;
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CLANG_CXX_LIBRARY
=
"libc++"
;
CLANG_ENABLE_MODULES
=
YES
;
CODE_SIGN_ENTITLEMENTS
=
Runner/DebugProfile.entitlements
;
CODE_SIGN_STYLE
=
Automatic
;
COMBINE_HIDPI_IMAGES
=
YES
;
DEVELOPMENT_TEAM
=
86R4V3XFLU
;
FRAMEWORK_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(PROJECT_DIR)/Flutter/ephemeral"
,
"$(inherited)"
,
);
HEADER_SEARCH_PATHS
=
(
"$(inherited)"
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/file_chooser/file_chooser.framework/Headers\""
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/path_provider_fde/path_provider_fde.framework/Headers\""
,
/usr/local/Cellar/opencv/4.1.2/include/opencv4
,
);
INFOPLIST_FILE
=
Runner/Info.plist
;
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"@executable_path/../Frameworks"
,
);
LIBRARY_SEARCH_PATHS
=
/usr/local/Cellar/opencv/4.1.2/lib
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SWIFT_OBJC_BRIDGING_HEADER
=
"Runner/Runner-Bridging-Header.h"
;
SWIFT_VERSION
=
4.0
;
};
name
=
Profile
;
...
...
@@ -558,21 +1025,31 @@
baseConfigurationReference
=
33E5194F232828860026EE4D
/* AppInfo.xcconfig */
;
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CLANG_CXX_LIBRARY
=
"libc++"
;
CLANG_ENABLE_MODULES
=
YES
;
CODE_SIGN_ENTITLEMENTS
=
Runner/DebugProfile.entitlements
;
CODE_SIGN_STYLE
=
Automatic
;
COMBINE_HIDPI_IMAGES
=
YES
;
DEVELOPMENT_TEAM
=
86R4V3XFLU
;
FRAMEWORK_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(PROJECT_DIR)/Flutter/ephemeral"
,
"$(inherited)"
,
);
HEADER_SEARCH_PATHS
=
(
"$(inherited)"
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/file_chooser/file_chooser.framework/Headers\""
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/path_provider_fde/path_provider_fde.framework/Headers\""
,
/usr/local/Cellar/opencv/4.1.2/include/opencv4
,
);
INFOPLIST_FILE
=
Runner/Info.plist
;
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"@executable_path/../Frameworks"
,
);
LIBRARY_SEARCH_PATHS
=
/usr/local/Cellar/opencv/4.1.2/lib
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SWIFT_OBJC_BRIDGING_HEADER
=
"Runner/Runner-Bridging-Header.h"
;
SWIFT_OPTIMIZATION_LEVEL
=
"-Onone"
;
SWIFT_VERSION
=
4.0
;
};
...
...
@@ -583,21 +1060,31 @@
baseConfigurationReference
=
33E5194F232828860026EE4D
/* AppInfo.xcconfig */
;
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
CLANG_CXX_LANGUAGE_STANDARD
=
"gnu++17"
;
CLANG_CXX_LIBRARY
=
"libc++"
;
CLANG_ENABLE_MODULES
=
YES
;
CODE_SIGN_ENTITLEMENTS
=
Runner/Release.entitlements
;
CODE_SIGN_STYLE
=
Automatic
;
COMBINE_HIDPI_IMAGES
=
YES
;
DEVELOPMENT_TEAM
=
86R4V3XFLU
;
FRAMEWORK_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(PROJECT_DIR)/Flutter/ephemeral"
,
"$(inherited)"
,
);
HEADER_SEARCH_PATHS
=
(
"$(inherited)"
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/file_chooser/file_chooser.framework/Headers\""
,
"\"${PODS_CONFIGURATION_BUILD_DIR}/path_provider_fde/path_provider_fde.framework/Headers\""
,
/usr/local/Cellar/opencv/4.1.2/include/opencv4
,
);
INFOPLIST_FILE
=
Runner/Info.plist
;
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"@executable_path/../Frameworks"
,
);
LIBRARY_SEARCH_PATHS
=
/usr/local/Cellar/opencv/4.1.2/lib
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
SWIFT_OBJC_BRIDGING_HEADER
=
"Runner/Runner-Bridging-Header.h"
;
SWIFT_VERSION
=
4.0
;
};
name
=
Release
;
...
...
macos/Runner/Cv.h
0 → 100644
View file @
53f3c5e8
////
//// Cv.h
//// Runner
////
//// Created by Apple on 2019/11/26.
//// Copyright © 2019 Google LLC. All rights reserved.
////
//
//#ifndef Cv_h
//#define Cv_h
//
//
//#endif /* Cv_h */
//
//
////
//// NSImage+OpenCV.h
////
//// Created by TangQiao on 12-10-26.
////
//
//#import <Foundation/Foundation.h>
//#import "opencv2/opencv.hpp"
//
//@interface CV (OpenCV)
//
//+(NSImage*)imageWithCVMat:(const cv::Mat&)cvMat;
//-(id)initWithCVMat:(const cv::Mat&)cvMat;
//
//@property(nonatomic, readonly) cv::Mat CVMat;
//@property(nonatomic, readonly) cv::Mat CVGrayscaleMat;
//
//@end
macos/Runner/Cv.mm
0 → 100644
View file @
53f3c5e8
////
//// Cv.m
//// Runner
////
//// Created by Apple on 2019/11/26.
//// Copyright © 2019 Google LLC. All rights reserved.
////
//
//#import <Foundation/Foundation.h>
////
//// NSImage+OpenCV.mm
////
//// Created by TangQiao on 12-10-26.
////
//
//#import "Cv.h"
//
//static void ProviderReleaseDataNOP(void *info, const void *data, size_t size)
//{
// return;
//}
//
//
//@implementation Cv (OpenCV)
//
//-(CGImageRef)CGImage
//{
// CGContextRef bitmapCtx = CGBitmapContextCreate(NULL/*data - pass NULL to let CG allocate the memory*/,
// [self size].width,
// [self size].height,
// 8 /*bitsPerComponent*/,
// 0 /*bytesPerRow - CG will calculate it for you if it's allocating the data. This might get padded out a bit for better alignment*/,
// [[NSColorSpace genericRGBColorSpace] CGColorSpace],
// kCGBitmapByteOrder32Host|kCGImageAlphaPremultipliedFirst);
//
// [NSGraphicsContext saveGraphicsState];
// [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:bitmapCtx flipped:NO]];
// [self drawInRect:NSMakeRect(0,0, [self size].width, [self size].height) fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0];
// [NSGraphicsContext restoreGraphicsState];
//
// CGImageRef cgImage = CGBitmapContextCreateImage(bitmapCtx);
// CGContextRelease(bitmapCtx);
//
// return cgImage;
//}
//
//
//-(cv::Mat)CVMat
//{
// CGImageRef imageRef = [self CGImage];
// CGColorSpaceRef colorSpace = CGImageGetColorSpace(imageRef);
// CGFloat cols = self.size.width;
// CGFloat rows = self.size.height;
// cv::Mat cvMat(rows, cols, CV_8UC4); // 8 bits per component, 4 channels
//
// CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, // Pointer to backing data
// cols, // Width of bitmap
// rows, // Height of bitmap
// 8, // Bits per component
// cvMat.step[0], // Bytes per row
// colorSpace, // Colorspace
// kCGImageAlphaNoneSkipLast |
// kCGBitmapByteOrderDefault); // Bitmap info flags
//
// CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), imageRef);
// CGContextRelease(contextRef);
// CGImageRelease(imageRef);
// return cvMat;
//}
//
//-(cv::Mat)CVGrayscaleMat
//{
// CGImageRef imageRef = [self CGImage];
// CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
// CGFloat cols = self.size.width;
// CGFloat rows = self.size.height;
// cv::Mat cvMat = cv::Mat(rows, cols, CV_8UC1); // 8 bits per component, 1 channel
// CGContextRef contextRef = CGBitmapContextCreate(cvMat.data, // Pointer to backing data
// cols, // Width of bitmap
// rows, // Height of bitmap
// 8, // Bits per component
// cvMat.step[0], // Bytes per row
// colorSpace, // Colorspace
// kCGImageAlphaNone |
// kCGBitmapByteOrderDefault); // Bitmap info flags
//
// CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), imageRef);
// CGContextRelease(contextRef);
// CGColorSpaceRelease(colorSpace);
// CGImageRelease(imageRef);
// return cvMat;
//}
//
//+ (NSImage *)imageWithCVMat:(const cv::Mat&)cvMat
//{
// return [[[NSImage alloc] initWithCVMat:cvMat] autorelease];
//}
//
//- (id)initWithCVMat:(const cv::Mat&)cvMat
//{
// NSData *data = [NSData dataWithBytes:cvMat.data length:cvMat.elemSize() * cvMat.total()];
//
// CGColorSpaceRef colorSpace;
//
// if (cvMat.elemSize() == 1)
// {
// colorSpace = CGColorSpaceCreateDeviceGray();
// }
// else
// {
// colorSpace = CGColorSpaceCreateDeviceRGB();
// }
//
// CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
//
// CGImageRef imageRef = CGImageCreate(cvMat.cols, // Width
// cvMat.rows, // Height
// 8, // Bits per component
// 8 * cvMat.elemSize(), // Bits per pixel
// cvMat.step[0], // Bytes per row
// colorSpace, // Colorspace
// kCGImageAlphaNone | kCGBitmapByteOrderDefault, // Bitmap info flags
// provider, // CGDataProviderRef
// NULL, // Decode
// false, // Should interpolate
// kCGRenderingIntentDefault); // Intent
//
//
// NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:imageRef];
// NSImage *image = [[NSImage alloc] init];
// [image addRepresentation:bitmapRep];
//
// CGImageRelease(imageRef);
// CGDataProviderRelease(provider);
// CGColorSpaceRelease(colorSpace);
//
// return image;
//}
//
//@end
macos/Runner/MainFlutterWindow.swift
View file @
53f3c5e8
...
...
@@ -2,31 +2,33 @@ import Cocoa
import
FlutterMacOS
class
MainFlutterWindow
:
NSWindow
{
override
func
awakeFromNib
()
{
let
flutterViewController
=
FlutterViewController
.
init
()
let
windowFrame
=
self
.
frame
self
.
contentViewController
=
flutterViewController
self
.
setFrame
(
windowFrame
,
display
:
true
)
// guard let controller = flutterViewController as? FlutterPluginRegistrar else {
// fatalError("rootViewController is not type FlutterViewController")
// }
//
// let batteryChannel = FlutterMethodChannel(name:"GM_Desktop",
// binaryMessenger: controller.messenger)
//
// batteryChannel.setMethodCallHandler({
// [weak self] (call: FlutterMethodCall, result: FlutterResult) -> Void in
// guard call.method == "getBatteryLevel" else {
// result(FlutterMethodNotImplemented)
// return
// }
// self?.receiveBatteryLevel(result: result)
// })
RegisterGeneratedPlugins
(
registry
:
flutterViewController
)
override
func
awakeFromNib
()
{
let
flutterViewController
=
FlutterViewController
.
init
()
let
windowFrame
=
self
.
frame
self
.
contentViewController
=
flutterViewController
self
.
setFrame
(
windowFrame
,
display
:
true
)
// guard let controller = flutterViewController as? FlutterPluginRegistrar else {
// fatalError("rootViewController is not type FlutterViewController")
// }
//
// let batteryChannel = FlutterMethodChannel(name:"GM_Desktop",
// binaryMessenger: controller.messenger)
//
// batteryChannel.setMethodCallHandler({
// [weak self] (call: FlutterMethodCall, result: FlutterResult) -> Void in
// guard call.method == "getBatteryLevel" else {
// result(FlutterMethodNotImplemented)
// return
// }
// self?.receiveBatteryLevel(result: result)
// })
RegisterGeneratedPlugins
(
registry
:
flutterViewController
)
super
.
awakeFromNib
()
}
super
.
awakeFromNib
()
}
}
macos/Runner/MyPlugin.swift
0 → 100644
View file @
53f3c5e8
//
// MyPlugin.swift
// Runner
//
// Created by Apple on 2019/11/26.
// Copyright © 2019 Google LLC. All rights reserved.
//
import
Foundation
import
FlutterMacOS
import
Foundation
import
Cocoa
public
class
MyPlugin
:
NSObject
,
FlutterPlugin
{
public
static
func
register
(
with
registrar
:
FlutterPluginRegistrar
)
{
let
channel
=
FlutterMethodChannel
(
name
:
"lsyyy"
,
binaryMessenger
:
registrar
.
messenger
)
let
instance
=
MyPlugin
()
registrar
.
addMethodCallDelegate
(
instance
,
channel
:
channel
)
}
public
func
handle
(
_
call
:
FlutterMethodCall
,
result
:
@escaping
FlutterResult
)
{
switch
call
.
method
{
case
"opencv"
:
result
(
"o98k"
)
default
:
result
(
"not impl"
)
}
}
}
macos/Runner/Runner-Bridging-Header.h
0 → 100644
View file @
53f3c5e8
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment