|
发表于 2023-11-22 12:21:57
|
显示全部楼层
福建省漳州市
我把这个搬到 68个关键点 一起了, 可以使用,但就是 完整执行一遍就崩了。 输出调试文本 (局_指针) 可以输出, 输出调试文本 (“结束”) 这个没输出。
.版本 2
.子程序 识别面部
.局部变量 局_时间, 整数型
.局部变量 局_局部, 整数型
.局部变量 局_图片, 文本型
.局部变量 局_模型, 文本型
.局部变量 局_指针, 整数型, , , 指针
.局部变量 局_图像, 整数型, , , 指针
.局部变量 局_灰度, 整数型, , , 指针
.局部变量 局_最小, 大小型
.局部变量 局_最大, 大小型
.局部变量 局_坐标, 坐标型
.局部变量 局_位置, 矩形信息
.局部变量 局_矩形, 矩阵容器类
.局部变量 i, 整数型
视频画板.清除 (, , , )
局_时间 = 取启动时间 ()
局_图片 = 取运行目录 () + “\bin\image\0x05.jpg”
视频画板.写出 (局_图片)
' 局_模型 = 取运行目录 () + “\bin\model\Facemark\探测面部模型.xml”
局_模型 = 取运行目录 () + “\bin\model\模型_正脸_训练文件.xml”
标题 = 局_图片
视频画板.写出 (“正在初始化OpenCV库......” + #换行符)
OpenCV_OVC_Current (1) ' //初始化OCV
局_指针 = OpenCV_CaCl_CJian () ' //创建一个指针
视频画板.写出 (“完成” + #换行符)
视频画板.写出 (“正在载入识别模型......” + #换行符)
.如果真 (OpenCV_CaCl_load (局_指针, 局_模型) = 假) ' //载入识别训练文件
信息框 (“识别文件加载失败!”, 0, , )
返回 ()
.如果真结束
视频画板.写出 (“完成” + #换行符)
视频画板.写出 (“正在载入目标图片......” + #换行符)
局_图像 = OpenCV_OCV_imread (局_图片, #IMREAD_COLOR) ' //载入一张图片,颜色模式详见常量#IMREAD_*
.如果真 (局_图像 = 0)
信息框 (“图片文件加载失败!”, 0, , )
返回 ()
.如果真结束
局_矩形.创建容器 () ' //创建一个矩形容器,用来存放人脸位置
局_最小.宽度 = 30
局_最小.高度 = 30
局_最大.宽度 = 400
局_最大.高度 = 400
视频画板.写出 (“完成” + #换行符)
.如果真 (OpenCV_Mat_empty (局_图像) = 假) ' //判断指针是否有效,真=无效
视频画板.写出 (“开始识别图像。” + #换行符)
局_局部 = 取启动时间 ()
局_灰度 = OpenCV_Mat_CJian () ' //创建一个指针
OpenCV_OCV_cvtColor (局_图像, 局_灰度, #COLOR_BGR2GRAY, 0) ' //将图片颜色转为灰度,其他转换格式见常量#COLOR_*
OpenCV_OCV_equalizeHist (局_灰度, 局_灰度) ' //直方图均衡化,图像直方图描述了图像中灰度值的分布情况,直方图均衡化就是通过拉伸像素强度分布范围来增强图像对比度的一种方法
OpenCV_CaCl_detectMultiScale (局_指针, 局_灰度, 局_矩形.指针 (), 1.1, 5, 位或 (0, #CASCADE_SCALE_IMAGE), 局_最小, 局_最大) ' //识别图像
.变量循环首 (0, 局_矩形.取大小 () - 1, 1, i)
局_位置 = 局_矩形.取矩形 (i) ' //y引索从0开始
' 视频画板.画矩形 (局_位置.左边, 局_位置.顶边, 局_位置.左边 + 局_位置.宽度, 局_位置.顶边 + 局_位置.高度)
输出调试文本 (局_位置.左边, 局_位置.顶边, 局_位置.左边 + 局_位置.宽度, 局_位置.顶边 + 局_位置.高度)
.变量循环尾 ()
视频画板.写出 (“识别完成>>>>>>>>>” + #换行符)
视频画板.写出 (“图像指针:” + 到文本 (局_灰度) + #换行符)
视频画板.写出 (“人头数量:” + 到文本 (局_矩形.取大小 ()) + #换行符)
视频画板.写出 (“识别用时:” + 到文本 ((取启动时间 () - 局_局部) ÷ 1000) + “s” + #换行符)
视频画板.写出 (“整体用时:” + 到文本 ((取启动时间 () - 局_时间) ÷ 1000) + “s” + #换行符)
.如果真结束
OpenCV_CaCl_XHui (局_指针)
输出调试文本 (局_指针)
.子程序 _按钮4_被单击
识别面部 ()
输出调试文本 (“结束”)
|
|