Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
best_AI
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
常超凡
best_AI
Commits
bb1ab9c7
提交
bb1ab9c7
authored
2月 27, 2024
作者:
常超凡
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
99
上级
2287733f
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
170 行增加
和
246 行删除
+170
-246
cameraTakePhoto.js
pages/cameraTakePhoto/cameraTakePhoto.js
+0
-8
takephoto.js
pages/fenggu/takephoto/takephoto.js
+145
-230
takephoto.wxml
pages/fenggu/takephoto/takephoto.wxml
+8
-1
takephoto.wxss
pages/fenggu/takephoto/takephoto.wxss
+17
-7
没有找到文件。
pages/cameraTakePhoto/cameraTakePhoto.js
浏览文件 @
bb1ab9c7
...
...
@@ -291,14 +291,6 @@ Page({
all_state
:
true
})
that
.
listener
.
stop
()
// if (this.data.all_state === false) {
// console.log('全部完成后进行放大拍照')
// that.takePhoto2()
// that.setData({
// all_state: true
// })
// that.listener.stop()
// }
}
}
else
{
console
.
log
(
'拍照失败'
)
...
...
pages/fenggu/takephoto/takephoto.js
浏览文件 @
bb1ab9c7
// pages/fenggu/takephoto/takephoto.js
var
util
=
require
(
'../../../utils/util'
)
var
Counter
=
0
;
Page
({
/**
...
...
@@ -9,31 +11,62 @@ Page({
stepIndex
:
0
,
// tab切换(AI验证,示范切换)
tabIndex
:
1
tabIndex
:
1
,
windowWidth
:
''
,
windowHeight
:
''
,
result_zoom
:
0
,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad
(
options
)
{
this
.
get
IsCodeImg
()
this
.
get
BaseTakePhoto
()
},
// 视频流判断是否有三维码
getIsCodeImg
()
{
let
nNumber
=
0
const
ctx
=
wx
.
createCameraContext
()
const
listener
=
ctx
.
onCameraFrame
((
frame
)
=>
{
nNumber
++
if
(
nNumber
%
25
==
0
)
{
//获取
getBaseTakePhoto
(){
var
that
=
this
var
nCounter
=
0
const
{
screenWidth
,
screenHeight
}
=
wx
.
getSystemInfoSync
()
const
windowWidth
=
750
const
windowHeight
=
screenHeight
/
screenWidth
*
windowWidth
this
.
setData
({
windowWidth
,
windowHeight
,
})
// console.log('wind', windowWidth, 'height', windowHeight)
this
.
ctx
=
wx
.
createCameraContext
()
this
.
listener
=
this
.
ctx
.
onCameraFrame
((
frame
)
=>
{
if
(
nCounter
==
25
)
{
if
(
this
.
data
.
tag
)
return
this
.
data
.
tag
=
true
setTimeout
(()
=>
{
this
.
data
.
tag
=
false
},
1000
)
this
.
setData
({
[
'frame.width'
]:
frame
.
width
,
[
'frame.height'
]:
frame
.
height
,
})
var
data
=
new
Uint8Array
(
frame
.
data
);
// console.log('data', data)
var
clamped
=
new
Uint8ClampedArray
(
data
);
// console.log('clamped', clamped)
// 实时帧数据添加到Canvas上
// console.log('===========')
wx
.
canvasPutImageData
({
canvasId
:
'myCanvas'
,
x
:
0
,
y
:
0
,
width
:
frame
.
width
,
//288 288
height
:
frame
.
width
,
//512 381
data
:
new
Uint8ClampedArray
(
new
Uint8Array
(
frame
.
data
)),
success
:()
=>
{
height
:
frame
.
height
,
//512 381
data
:
clamped
,
success
:
(
res
)
=>
{
// 转换临时文件
wx
.
canvasToTempFilePath
({
canvasId
:
'myCanvas'
,
x
:
0
,
...
...
@@ -50,6 +83,9 @@ Page({
//进行编码
const
base
=
wx
.
getFileSystemManager
().
readFileSync
(
res
.
tempFilePath
,
'base64'
)
// console.log('base',base)
that
.
setData
({
src
:
res
.
tempFilePath
});
wx
.
request
({
url
:
'https://ai.tj5.cc:35437/object/'
,
// url: 'https://tj5.cc:4433/object/',
...
...
@@ -74,9 +110,8 @@ Page({
var
result_sx
=
result
[
minindex
][
1
]
var
result_w
=
result
[
minindex
][
2
]
var
result_zoom
=
parseFloat
((
0.85
/
result_w
).
toFixed
(
1
))
let
state
=
''
let
status
=
''
let
state_x
=
''
console
.
log
(
'result_zoom'
,
result_zoom
)
console
.
log
(
'result_w'
,
result_w
)
if
(
result_zy
>
0.588
)
{
//0.568
state
=
'left'
}
else
if
(
result_zy
<
0.405
)
{
//0.425
...
...
@@ -92,24 +127,24 @@ Page({
let
singe_state
=
true
take_Count
++
,
wx
.
removeStorageSync
(
'singe_state'
)
// console.log('that.data.takephoto', that.data.takephoto)
if
(
this
.
data
.
takephoto
!==
'succes'
&&
this
.
data
.
take_photo_1
===
''
)
{
// console.log('大框参数完成进行拍照')
this
.
takePhoto
();
that
.
setData
({
singe_state
,
small_finish
:
true
})
status
=
'true'
if
(
text
===
text
&&
that
.
data
.
stepIndex
===
0
)
{
console
.
log
(
'大框参数完成进行拍照'
)
that
.
takePhoto
();
let
takephoto
=
'succes'
let
d_takephoto
=
'大框拍照完成'
// console.log('d_takephoto', d_takephoto)
that
.
setData
({
takephoto
,
text
,
d_takephoto
,
stepIndex
:
1
})
// console.log('that.data.takephoto', that.data.takephoto)
// console.log('that.data.all_state', that.data.all_state)
console
.
log
(
'that.data.takephoto'
,
that
.
data
.
takephoto
)
}
//新修改
else
if
(
this
.
data
.
takephoto
===
'succes'
&&
that
.
data
.
all_state
===
false
)
{
//
console.log('进入小框判断')
else
if
(
that
.
data
.
takephoto
===
'succes'
&&
that
.
data
.
stepIndex
===
1
)
{
console
.
log
(
'进入小框判断'
)
var
result
=
res
.
data
.
result
;
var
d_result_zy
=
result
[
minindex
][
0
];
var
d_result_sx
=
result
[
minindex
][
1
];
...
...
@@ -122,35 +157,15 @@ Page({
}
else
if
(
d_result_sx
<
0.450
)
{
//0.410
state_x
=
'down'
}
else
{
// console.log('全部完成')
// console.log('this.data.all_state', this.data.all_state)
this
.
setData
({
all_finish
:
true
});
this
.
takePhoto2
()
this
.
setData
({
all_state
:
true
})
this
.
listener
.
stop
()
// if (this.data.all_state === false) {
// console.log('全部完成后进行放大拍照')
// that.takePhoto2()
// that.setData({
// all_state: true
// })
// that.listener.stop()
// }
console
.
log
(
'全部完成'
)
that
.
takePhoto2
()
that
.
listener
.
stop
()
}
}
else
{
console
.
log
(
'拍照失败'
)
// that.takePhoto2()
}
}
this
.
setData
({
state
:
state
,
status
:
status
,
state_x
:
state_x
})
},
fail
:
(
error
)
=>
{
console
.
log
(
'目标检测失败'
,
error
)
...
...
@@ -167,9 +182,13 @@ Page({
}
})
}
})
listener
.
start
()
},
nCounter
++
if
(
nCounter
>=
50
)
{
nCounter
=
0
}
},
100
)
this
.
listener
.
start
()
},
takePhoto
:
function
()
{
// console.log('takePhoto')
...
...
@@ -184,108 +203,76 @@ Page({
flash
:
'off'
,
success
:
(
res
)
=>
{
/*储存 */
wx
.
setStorage
({
key
:
'res.tempImagePath'
,
data
:
res
.
tempImagePath
,
})
// console.log('res.tempImagePath', res.tempImagePath)
const
base
=
wx
.
getFileSystemManager
().
readFileSync
(
res
.
tempImagePath
,
'base64'
)
// console.log('base', base)
this
.
setData
({
kongfileimage
:
res
.
tempImagePath
})
// console.log('base',base)
// console.log('开始解析')
//解码API
wx
.
request
({
// url:'https://ai.china315net.com:35437/api/upload/',
// url: 'https://ai.tj5.cc:35437/api/upload/',
// url:'https://tj5.cc:4433/api/upload/',
url
:
'https://ai.tj5.cc:35437/api/small_upload/'
,
// url:'https://tj5.cc:4433/api/small_upload/',
method
:
'POST'
,
data
:
{
base
,
'labelCodejson'
:
this
.
data
.
labelCode
},
success
:
(
res
)
=>
{
// console.log('base', base)
// console.log('res.statusCode ', res.statusCode)
// console.log('接口访问')
var
dtime
=
util
.
formatTime
(
new
Date
)
wx
.
setStorage
({
key
:
'dtime'
,
data
:
dtime
})
// console.log('当前时间', dtime)
var
res_data
=
res
.
data
// console.log('res_data', res_data)
var
succes_data
=
res_data
.
succes
// console.log('succes_data', succes_data)
if
(
res_data
===
'码解析失败'
||
succes_data
===
'loser'
||
res
.
statusCode
!==
200
)
{
// console.log('计算res_data长度',res_data.length)
// console.log('网络请求值不等于200 ')
const
datajson
=
'码解析失败'
// console.log('datajson1',datajson)
wx
.
setStorage
({
key
:
'datajson'
,
data
:
datajson
})
}
else
{
var
img_reader
=
res_data
.
img_reader
// console.log('img_reader', img_reader)
wx
.
setStorage
({
key
:
'img_reader'
,
data
:
img_reader
})
var
img_method
=
res_data
.
img_method
// console.log('img_method', img_method)
wx
.
setStorage
({
key
:
'img_method'
,
data
:
img_method
})
var
points
=
res_data
.
points
// console.log('points', points)
wx
.
setStorage
({
key
:
'points'
,
data
:
points
})
var
datajson
=
res_data
.
codeinfo
;
// console.log('原图解析内容datajson', datajson)
wx
.
setStorage
({
key
:
'datajson'
,
data
:
datajson
})
}
},
fail
:
(
res
)
=>
{
// console.log('调用upload接口超时', res)
if
(
res
.
errMsg
.
indexOf
(
'timeout'
)
!==
-
1
)
{
// console.log('请求超时')
const
datajson
=
'码解析失败'
// console.log('datajson1',datajson)
wx
.
setStorage
({
key
:
'datajson'
,
data
:
datajson
})
}
},
complete
:
(
res
)
=>
{
if
(
!
res
.
data
)
{
// console.log('网络请求没有返回任何数据')
const
datajson
=
'码解析失败'
// console.log('datajson1',datajson)
wx
.
setStorage
({
key
:
'datajson'
,
data
:
datajson
})
}
},
timeout
:
3000
})
// wx.request({
// url: 'https://ai.tj5.cc:35437/api/small_upload/',
// method: 'POST',
// data: {
// base,
// 'labelCodejson': this.data.labelCode
// },
// success: (res) => {
// var dtime = util.formatTime(new Date)
// wx.setStorage({
// key: 'dtime',
// data: dtime
// })
// var res_data = res.data
// var succes_data = res_data.succes
// if (res_data === '码解析失败' || succes_data === 'loser' || res.statusCode !== 200) {
// const datajson = '码解析失败'
// wx.setStorage({
// key: 'datajson',
// data: datajson
// })
// } else {
// var img_reader = res_data.img_reader
// wx.setStorage({
// key: 'img_reader',
// data: img_reader
// })
// var img_method = res_data.img_method
// wx.setStorage({
// key: 'img_method',
// data: img_method
// })
// var points = res_data.points
// wx.setStorage({
// key: 'points',
// data: points
// })
// var datajson = res_data.codeinfo;
// wx.setStorage({
// key: 'datajson',
// data: datajson
// })
// }
// },
// fail: (res) => {
// if (res.errMsg.indexOf('timeout') !== -1) {
// const datajson = '码解析失败'
// wx.setStorage({
// key: 'datajson',
// data: datajson
// })
// }
// },
// complete: (res) => {
// if (!res.data) {
// const datajson = '码解析失败'
// wx.setStorage({
// key: 'datajson',
// data: datajson
// })
// }
// },
// timeout: 3000
// })
//新增请求接口
wx
.
request
({
url
:
'https://ai.tj5.cc:35437/classify16/'
,
// url: 'https://tj5.cc:4433/classify16/',
method
:
"POST"
,
data
:
{
'image_type'
:
20
,
...
...
@@ -294,13 +281,11 @@ Page({
success
:
(
res
)
=>
{
let
result_value
=
res
.
data
.
result
let
yuan_file
=
res
.
data
.
image_path
// console.log('yuan_file', yuan_file)
wx
.
setStorage
({
key
:
'yuan_file'
,
data
:
yuan_file
})
if
(
result_value
==
14
)
{
// console.log('等于14分类')
let
hint_phone
=
result_value
this
.
setData
({
hint_phone
...
...
@@ -309,15 +294,12 @@ Page({
key
:
'hint_phone'
,
data
:
hint_phone
})
// console.log('hint_phone', hint_phone)
}
else
{
// console.log('不等于14分类')
let
hint_phone
=
result_value
wx
.
setStorage
({
key
:
'hint_phone'
,
data
:
hint_phone
})
// console.log('hint_phone', hint_phone)
}
},
fail
:
error
=>
{
...
...
@@ -334,58 +316,9 @@ Page({
},
350
);
}
})
let
once_takephoto
=
'true'
this
.
setData
({
takephoto_count
:
Counter
,
once_takephoto
:
once_takephoto
})
},
//源代码
// takePhoto2: function () {
// var that = this
// that.ctx.setZoom({
// // flash: 'on',
// zoom: 4.0,
// success: (res) => {
// console.log('setZoom 成功', res)
// const takephoto2_state = res.errMsg
// this.setData({
// takephoto2_state
// })
// console.log('takephoto2_state', takephoto2_state)
// setTimeout(() => {
// that.ctx.takePhoto({
// quality: 'high', //高质量
// success: (res) => {
// console.log('到相机里面')
// console.log('res.data', res)
// console.log('res.tempfile', res.tempImagePath)
// /*储存 */
// wx.setStorage({
// key: 'originalImagePath',
// data: res.tempImagePath,
// })
// console.log('image', res.tempImagePath)
// this.setData({
// bigfileimage: res.tempImagePath
// })
// let file = res.tempImagePath
// const base = wx.getFileSystemManager().readFileSync(file, 'base64')
// console.log('file', file)
// console.log('base', base)
// wx.navigateTo({
// url: '../upload/upload?path=' + that.data.bigfileimage + '&char=0'
// })
// console.log('传值成功')
// console.log('res.tempImagePath', that.data.bigfileimage)
// }
// })
// },350);
// }
// })
// },
//新增代码
takePhoto2
:
function
()
{
// console.log('takePhoto2')
const
that
=
this
;
...
...
@@ -394,48 +327,40 @@ Page({
return
system
.
indexOf
(
'iOS'
)
!==
-
1
}
if
(
isIOS
())
{
// console.log('当前设备是ios')
// console.log('this.data.result_zoom', this.data.result_zoom)
console
.
log
(
'ios'
)
if
(
this
.
data
.
result_zoom
===
0
)
{
this
.
setData
({
result_zoom
:
4
})
}
// console.log('this.data.result_zoom',
this.data.result_zoom)
console
.
log
(
'this.data.result_zoom'
,
this
.
data
.
result_zoom
)
that
.
ctx
.
setZoom
({
zoom
:
this
.
data
.
result_zoom
,
success
:
res
=>
{
// console.log('setZoom成功', res);
const
takephoto2_state
=
res
.
errMsg
;
this
.
setData
({
takephoto2_state
,
});
// console.log('takephoto2_state', takephoto2_state);
setTimeout
(()
=>
{
that
.
ctx
.
takePhoto
({
quality
:
'high'
,
flash
:
'on'
,
success
:
res
=>
{
// console.log('到相机里面');
// console.log('res.data', res);
// console.log('res.tempfile', res.tempImagePath);
/*储存 */
wx
.
setStorage
({
key
:
'originalImagePath'
,
data
:
res
.
tempImagePath
,
});
this
.
setData
({
bigfileimage
:
res
.
tempImagePath
,
stepIndex
:
2
});
wx
.
navigateTo
({
url
:
'../upload/upload?path='
+
that
.
data
.
bigfileimage
+
'&char=0'
url
:
'../
../
upload/upload?path='
+
that
.
data
.
bigfileimage
+
'&char=0'
});
},
fail
:
err
=>
{
console
.
error
(
'拍照失败'
,
err
);
that
.
takePhoto2
()
// console.log('拍照完成')
}
});
})
...
...
@@ -445,29 +370,17 @@ Page({
}
});
}
else
{
// console.log('当前设备是安卓')
// console.log('this.data.result_zoom', this.data.result_zoom)
if
(
this
.
data
.
result_zoom
===
0
)
{
this
.
setData
({
result_zoom
:
6
})
}
// const one_zoom = Math.floor(this.data.result_zoom * 0.85)
const
one_zoom
=
parseFloat
((
this
.
data
.
result_zoom
*
0.82
).
toFixed
(
1
));
// console.log('one_zoom', one_zoom)
const
benchmarkLevel
=
(
wx
.
getStorageSync
(
'benchmarkLevel'
)
||
0
)
const
phone_model
=
(
wx
.
getStorageSync
(
'phone_model'
)
||
''
)
// wx.removeStorageSync(String(benchmarkLevel));
// console.log('benchmarkLevel', benchmarkLevel)
// console.log('phone_model', phone_model)
let
timeS
;
// if(){
// }
// console.log('手机型号',phone_model)
let
phone_list
=
[
'NOH-AN00'
,
'NOH-AN01'
,
'OCE-AN10'
,
'JAD-AL00'
,
'LNA-AL00'
,
'NOP-AN00'
,
'NOH-AL10'
,
'ABR-AL80'
,
'MNA-AL00'
,
'JAD-AL50'
,
'ABR-AL00'
,
'ABR-AL90'
,
'ABR-AL60'
,
'ABR-AL60'
,
'NOH-AN50'
]
if
(
phone_list
.
includes
(
phone_model
)){
// console.log('特殊手机型号')
timeS
=
850
}
else
if
(
benchmarkLevel
>
40
)
{
...
...
@@ -514,7 +427,7 @@ Page({
})
wx
.
navigateTo
({
url
:
'../upload/upload?path='
+
that
.
data
.
bigfileimage
+
'&char=0'
url
:
'../
../
upload/upload?path='
+
that
.
data
.
bigfileimage
+
'&char=0'
})
},
fail
:
(
err
)
=>
{
...
...
@@ -596,3 +509,5 @@ Page({
}
})
pages/fenggu/takephoto/takephoto.wxml
浏览文件 @
bb1ab9c7
...
...
@@ -6,7 +6,7 @@
<view class="step-item {{stepIndex > 2 ? 'step-active' : ''}}">验证</view>
</view>
</view>
<view class="photo" style="position: relative;
flex:1;
background-color: black;">
<view class="photo" style="position: relative;background-color: black;">
<camera style="height: 100%;width: 100%;" flash="on" devic-position="back" frame-size="large">
</camera>
<!-- 拍照框(正方形) -->
...
...
@@ -19,3 +19,9 @@
</view>
</view>
</view>
<view style="position:fixed; top: 999999999px;">
<canvas canvas-id="myCanvas" style='width:{{frame.width}}px; height:{{frame.height}}px;'></canvas>
<image src="{{src}}" mode="widthFix" style='width: {{windowWidth}}px; height: {{windowWidth}}px;border: 1px solid red; '></image>
</view>
\ No newline at end of file
pages/fenggu/takephoto/takephoto.wxss
浏览文件 @
bb1ab9c7
...
...
@@ -9,29 +9,39 @@
box-sizing: border-box;
}
.takephoto .focus {
.takephoto .
photo .
focus {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
transform: translate(-50%,
-50%);
width: 400rpx;
z-index: 9999;
z-index: 9999
9
;
}
.takephoto .focus {
/*
.takephoto .focus {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,
-50%);
transform: translate(-50%,
-50%);
width: 400rpx;
z-index: 99999;
} */
.takephoto .photo {
flex: 1;
height: 400rpx;
}
.step,.step-box,.bottom,.tabs {
.step,
.step-box,
.bottom,
.tabs {
display: flex;
justify-content: center;
text-align: center;
}
.step .step-item {
padding: 0 20rpx;
height: 80rpx;
...
...
@@ -41,7 +51,7 @@
background-color: #ADADAD;
}
.bottom .tabs .tabItem{
.bottom .tabs .tabItem
{
height: 80rpx;
line-height: 80rpx;
min-width: 200rpx;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论