开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 16043|回复: 21
收起左侧

[其它] 调用OpenCV – 4.5.5机器学习找图实测与与大漠插件dm.dll找图...

[复制链接]
发表于 2022-6-6 19:31:27 | 显示全部楼层 |阅读模式   广西壮族自治区柳州市

调用OpenCV – 4.5.5机器学习找图

调用OpenCV – 4.5.5机器学习找图

最型看到OpenCV – 4.5.5图像处理机器学习找图不错,以下是从工程复制的一些代码
实测c++mfc调用OpenCV – 4.5.5机器学习游戏窗口大图中找小图,找到后返回小图坐标,实测与大漠插件dm.dll找图函数返回的坐标一样
(找到后移动鼠标到小图坐标并点击很简单自己解决这里略过)

以下是核心代码供参考
Mat g_srcImage, g_tempalteImage, g_resultImage;
int g_nMatchMethod;
int g_nMaxTrackbarNum = 5;
CString g_cstr1, g_cstr2, g_cstr3, g_cstr4;
double minValue, maxValue;
Point minLocation, maxLocation, matchLocation;

void  on_matching(int, void*)
{

        Mat srcImage;
        g_srcImage.copyTo(srcImage);
        int resultImage_cols = g_srcImage.cols - g_tempalteImage.cols + 1;
        int resultImage_rows = g_srcImage.rows - g_tempalteImage.rows + 1;
        g_resultImage.create(resultImage_cols, resultImage_rows, CV_32FC1);
        matchTemplate(g_srcImage, g_tempalteImage, g_resultImage, g_nMatchMethod);
        //返回的值在g_resultImage的矩阵中
        normalize(g_resultImage, g_resultImage, 0, 1, NORM_MINMAX, -1, Mat());//将上面的返回数据归一化数据
        minMaxLoc(g_resultImage, &minValue, &maxValue, &minLocation, &maxLocation);

        if (g_nMatchMethod == TM_SQDIFF || g_nMatchMethod == CV_TM_SQDIFF_NORMED)
        {
                matchLocation = minLocation;
        }
        else
        {
                matchLocation = maxLocation;
        }

}


int CjisDlg::TestMain()
{
        g_srcImage = imread("QHD.bmp");//被找的大图
        if (!g_srcImage.data)
        {
                return -1;
        }
        g_tempalteImage = imread("QH.bmp");//要找的小图
        if (!g_tempalteImage.data)
        {
                return -1;
        }
        on_matching(0, NULL);
        g_cstr1.Format("%d", (int)minValue);
        m_Show1 = g_cstr1;//m_Show1为编辑框1的变量 类型为CString,以下同
        g_cstr2.Format("%d", (int)maxValue);
        m_Show2 = g_cstr2;
        g_cstr3.Format("%d,%d", (int)(minLocation.x - 8), (int)(minLocation.y - 31));//返回的找图坐标,已测试与dm找图函数FindPicE返回的坐标一致.-8和-31是坐标偏差
        m_Show3 = g_cstr3;
        g_cstr4.Format("%d,%d", (int)(matchLocation.x + g_tempalteImage.cols), (int)(matchLocation.y + g_tempalteImage.rows));//在找到的坐标画矩形的坐标
        m_Show4 = g_cstr4;
        UpdateData(false);
        return 0;
};


下面用的是免注册调用大漠插件dm.dll找图参考
.子程序 移动_并单击
.局部变量 坐标1, 坐标
.局部变量 延迟间隔, 整数型
.局部变量 返回坐标文本, 文本型
.局部变量 返回坐标文本中, 文本型
.局部变量 返回坐标文本尾, 文本型

坐标1.x = 到整数 (编辑框坐标x.内容)
坐标1.y = 到整数 (编辑框坐标y.内容)
SetWindowPos (到整数 (编辑框句柄.内容), -1, 0, 0, 0, 0, 位或 (1, 2))
延迟 (100)
局_对象1.数值方法 (“KeyPress”, #Tab键)
延迟 (100)
局_对象1.数值方法 (“KeyUpChar”, #Tab键)
返回坐标文本 = 局_对象1.文本方法 (“FindPicE”, 0, 0, 1024, 768, “石头.bmp”, “3C84EF”, 1, 0)
延迟 (1000)
调试输出 (返回坐标文本)
返回坐标文本中 = 取文本中间 (返回坐标文本, 3, 3)
返回坐标文本尾 = 取文本中间 (返回坐标文本, 7, 3)
坐标1.x = 到整数 (返回坐标文本中)
坐标1.y = 到整数 (返回坐标文本尾)
调试输出 (返回坐标文本中, 返回坐标文本尾)
局_对象1.数值方法 (“MoveTo”, 坐标1.x, 坐标1.y)
模拟鼠标左键按下并弹起 (100)
局_对象1.数值方法 (“KeyPress”, #Tab键)
延迟 (100)
局_对象1.数值方法 (“KeyUpChar”, #Tab键)
编辑框坐标x.内容 = 返回坐标文本中
编辑框坐标y.内容 = 返回坐标文本尾
SetWindowPos (到整数 (编辑框句柄.内容), -2, 0, 0, 0, 0, 位或 (2, 1))
写配置项 (取运行目录 () + “\配置.ini”, “数据”, “句柄”, 编辑框句柄.内容)
写配置项 (取运行目录 () + “\配置.ini”, “数据”, “坐标x”, 编辑框坐标x.内容)
写配置项 (取运行目录 () + “\配置.ini”, “数据”, “坐标y”, 编辑框坐标y.内容)


评分

参与人数 1好评 +1 精币 +2 收起 理由
just1993 + 1 + 2 支持开源~!感谢分享

查看全部评分


签到天数: 2 天

发表于 2024-7-30 14:36:57 | 显示全部楼层   广东省佛山市
回复 支持 反对

使用道具 举报

发表于 2024-7-26 17:11:25 | 显示全部楼层   江西省萍乡市
支持E语言吗?
回复 支持 反对

使用道具 举报

签到天数: 22 天

发表于 2024-5-13 15:42:22 | 显示全部楼层   四川省成都市
回复 支持 反对

使用道具 举报

签到天数: 8 天

发表于 2024-5-9 18:18:47 | 显示全部楼层   山东省滨州市

好东西学习一下1
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 14 天

发表于 2024-4-29 10:49:31 | 显示全部楼层   浙江省宁波市

真是谢谢大佬了...
回复 支持 反对

使用道具 举报

发表于 2023-7-26 18:58:29 | 显示全部楼层   安徽省安庆市
没有下载?????????????????
回复 支持 反对

使用道具 举报

发表于 2023-6-30 11:33:04 | 显示全部楼层   福建省泉州市
为什么opencv 要带坐标偏差呢?坐标的偏差值是怎么得出来的?大哥,求教!
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 5 天

发表于 2023-6-15 11:02:39 | 显示全部楼层   广东省深圳市
回复 支持 反对

使用道具 举报

发表于 2022-12-13 22:43:26 | 显示全部楼层   湖南省长沙市
   支持开源~!感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表