AutoHotkey的源码,模糊找图和精确找图思路一样,也是用笨方法。原来的C代码比较难看懂,这里的delphi代码,很容易弄明白。

以下是模糊的找图。如果需要,可以再做优化处理。注意我这里去掉了透明处理,需要的自己加上吧。

因为用到了iif函数,别忘了uses IdGlobal;

// 模糊判断,在大图里的(x,y)位置上是不是小图?

// 其中nV是R,G,B的偏差值,0..255

function BmpCmpEx(bmpBig,bmp:TBitmap;x,y:integer;nV:byte):boolean;

var

i,j:integer;

row1, row2:pRGBTripArray;

p1,p2:TRGBTriple;

pLow,pHigh:TRGBTriple;

begin

result:=true;

for j:=0 to bmp.Height-1 do

begin

row1:=bmpBig.ScanLine[y+j];

row2:=bmp.ScanLine[j];

for i:= 0 to bmp.Width-1 do

begin

p1:=row1[x+i];

p2:=row2[i];

// uses IdGlobal, 如果使用IfThen代替iif, Uses Math

pLow.rgbtRed  := iif(nV > p2.rgbtRed,  0 , p2.rgbtRed - nV);

pLow.rgbtGreen := iif(nV > p2.rgbtGreen, 0 , p2.rgbtGreen - nV);

pLow.rgbtBlue  := iif(nV > p2.rgbtBlue , 0 , p2.rgbtBlue - nV);

pHigh.rgbtRed  := iif((nV > $FF - p2.rgbtRed) , $FF , p2.rgbtRed + nV);

pHigh.rgbtGreen := iif((nV > $FF - p2.rgbtGreen) , $FF , p2.rgbtGreen + nV);

pHigh.rgbtBlue  := iif((nV > $FF - p2.rgbtBlue) , $FF , p2.rgbtBlue + nV);

if not ((p1.rgbtRed>=pLow.rgbtRed) and (p1.rgbtRed<=pHigh.rgbtRed)

and (p1.rgbtGreen>=pLow.rgbtGreen) and (p1.rgbtGreen<=pHigh.rgbtGreen)

and (p1.rgbtBlue>=pLow.rgbtBlue) and (p1.rgbtBlue<=pHigh.rgbtBlue)) then

begin

result:=false;

exit;

end;

end;

end;

end;

以下是模糊找图, 调用模糊判断

// 模糊找图,在大图里的(x1,y1)和(x2,y2)中找出小图来?

// 其中nV是R,G,B的偏差值,0..255

// 当返回true时,以下变量存放找到的位置

//    bmpFindX:integer;

//    bmpFindY:integer;

function BmpFindEx(bmpBig,bmp:TBitmap;x1,y1,x2,y2:integer;nV:byte):Boolean;

var

x,y:integer;

begin

if x1+y1+x2+y2=0 then

begin

x1:=0;

y1:=0;

x2:=bmpBig.Width-1;

y2:=bmpBig.Height-1;

end;

for y:=y1 to y2-1 do //行

begin

if bmp.Height>y2-y then //高度不够,失败了

break;

for x:=x1 to x2-1 do //列

begin

if (bmp.Width>x2-x) then //宽度不够,本行完成检查了

break;

begin

if BmpCmpEx(bmpBig,bmp,x,y,nV) then

begin

result:=true;

bmpFindX:=x;

bmpFindY:=y;

exit;

end;

end; // end if

end; // end for x

end; // end for y

result:=false; // 到这里就是失败

end;

delphi之模糊找图相关推荐

  1. 触摸精灵实现找图功能

    功能是实现区域模糊找图功能  脚本如下: function main() -- main函数,脚本播放时会执行该函数mSleep(2000) -- 等待2秒后执行,目的是防止触摸精灵开启提示遮挡屏幕, ...

  2. 图片导入ppt后模糊_PPT设计,找图也是一种能力

    关注[新精英充电站]能力提升看得见! 除了拍摄的图片.公司产品的效果图等,有时还需要从网络中获取一些图片资源.对于PPT设计而言,会找图片也是一种能力的表现.高手往往能既快速又准确地找到高质量的配图. ...

  3. Delphi下实现全屏快速找图找色

    前言 最近有好几个朋友都在问我找图找色的问题,奇怪?于是乎写了一个专门用于找图找色的单元文件"BitmapData.pas".在这个单元文件中我实现了从文件中导入位图.屏幕截图.鼠 ...

  4. Delphi下实现全屏快速找图找色 二、矩阵遍历

    二.矩阵遍历 矩阵遍历是一个数据结构方面的问题.假设有一个矩阵Matrix,它共有RowCount行,每行有ColCount列,当利用y表示行数,x表示列数,那么利用Matrix[y,x]就可以访问矩 ...

  5. 大漠找图算法_GitHub - jozhn/op: op插件(类似大漠插件),Windows消息模拟,gdi,dx,opengl截图,找图,找字(OCR),其他实用算法...

    Overview OP(operator & open)是一个开源插件(类似大漠插件).主要特点:Windows消息模拟,后台截图,找图,字符识别(OCR),以及其他实用功能...使用c++编 ...

  6. 电脑端(PC)按键精灵——5.找色/找图命令

    电脑端(PC)按键精灵--5.找色/找图命令 注:说了键盘.鼠标.其他.控制命令还有安装内容,现在说下颜色/图形命令,这一节相当重要 按键精灵小白入门详细教程: 电脑端(PC)按键精灵-小白入门 详细 ...

  7. 从零学起之安卓篇《按键精灵安卓版找图找色应用汇总介绍》更新20

    本期主题:介绍目前手机按键(按键精灵安卓版)在编写脚本中,都需要用到哪些方式进行图色识别. 惯例先讲好处: 1.找色,如何计算颜色相似度,解决不同款式手机中画面颜色差异的问题. 2.找图,不太推荐,我 ...

  8. 2018-3-9 论文(网络评论中非结构化信息表示与研究)笔记---模糊认知图的形式化表示

    定义: 模糊认知图_百度百科 https://baike.baidu.com/item/%E6%A8%A1%E7%B3%8A%E8%AE%A4%E7%9F%A5%E5%9B%BE/20881975?f ...

  9. 这款PDF阅读器1秒定位论文公式变量,不同页图文也能同屏看,刷论文再也不用来回翻页看文找图了! | 开源...

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 论文当前段落和相关图像又双叒不在同一页上! 怎么办?只能看文找图,再看图找文,在论文间来回跳转. 重复几次后,理解思路也就被沿途密密麻麻的数 ...

最新文章

  1. Python:数据集成
  2. 【大脑】改善记忆力的食物有哪些
  3. 主机和虚拟机ping不通的原因
  4. wordpress引入php文件,WordPress主题制作之模板文件的引入方法,wordpress模板
  5. 深入了解EntityFramework——Lazy Loading与Eager Loading
  6. python动态爬取知乎_python爬虫从小白到高手 Day2 动态页面的爬取
  7. 如何才能成为编程高手?别人都不告诉你的东西,我来说给你听!
  8. 使用opensocial接入social game
  9. mysql dump 导出表_误删库,别跑路!教你一招MySQL 数据恢复
  10. 嵌入式linux软件/驱动开发工程师需要哪些知识
  11. winrar 解决广告弹窗及restorator简介
  12. MTK手机官方ROM提取教程
  13. 如何做一个被领导喜欢的实施顾问
  14. 如何用html实现图片轮播,怎么单纯的用html+css实现图片轮播?
  15. Java进阶总结——集合框架
  16. 汇编没什么用,不用学了
  17. pip 安装第三方库时各种报错It is a distutils installed project and thus we cannot accurately determine
  18. 计算机硕士论文解读,计算机专业硕士论文提纲范文大全 计算机专业硕士论文提纲如何写...
  19. 常见的国家语言缩写以及语言的代码
  20. 什么是 主机地址 、网络地址

热门文章

  1. Mysql数据库(七)——mysql高阶语句(上)
  2. lr分析器的设计与实现实验报告_《计算机导论》课程实验报告(一维数组)
  3. linux笔记之 搭建本地yum源,网卡的基本操作
  4. 2020年大厂职级薪资一览表
  5. php对字符串进行编码,PHP如何使用convert_uuencode()函数对字符串进行编码?
  6. react实战项目_React实战之React+Redux实现一个天气预报小项目
  7. long转时间 unity_Unity3D如何获取时间戳或北京时间
  8. jquery 字符串查找_Python Appium 库IOS特有元素查找API介绍
  9. 文件服务器+好处,文件服务器 好处
  10. b树删除节点每次只能删一个吗_深入理解数据库系统之存储存引擎(B树)