wdetect获取截图内容

wdetect 是一个php扩展,功能主要是:

  • 从微信数据截图上找到那个 漏斗形的图表 并读取里面包含的转化率数值信息;
  • 在图片的指定区域内扫描、定位数字;
  • 从图片上指定的矩形框里读取数值;
  • 判断图片上指定的矩形框里包含的文本的宽度(像素数) 与 给定的文本 是否相近(用于粗略判断 图上文本内容跟指定文本内容是否相同,下面安装的版本里被阉了)

wdetect 依赖opencv2、boost>=1.41(filesystem/preprocessor/lexical_cast等)、staging(c/c++脚手架,私人物品),上述第四个功能依赖 ImageMagick。

痛苦开始了:天杀的centos 5.x,基本所有东西都是低版本的,而且大多数库都只有动态库 没有静态库可以yum安装。

先安装依赖:

然后进wdetect源码的目录,修改config.m4,设置 CXX=g++44  后再

/usr/local/php/bin/phpize

./configure --enable-wdetect --with-staging=/opt/release/staging --with-php-config=/usr/local/php/bin/php-config

make && sudo make install

修改 /usr/local/php/etc/php.ini 设置 enable_dl=On

就可以用了(建议看看 /usr/local/php/bin/php -r ‘error_reporting(-1); dl("wdetect.so"); var_dump(class_exists("WDetecter"));‘ 对不对)。

测试:进wdetect源码目录,执行

/usr/local/php/bin/php test.php   # 用 ./data/16.jpg 这个图片做测试

/usr/local/php/bin/php test.php ./data  # 用 ./data 下的所有图片文件做测试,输出每次测试的详细结果和统计结果

192.168.100.69:/home/marongcai/wdetect 已经装好了,ssh账号和密码都是 evaluation。

安装 cmake28、gcc44 前可能要加软件源: /etc/yum.repos.d/epel.repo    /etc/yum.repos.d/epel-testing.repo    /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

装完boost141可能要:

for lib in ls /usr/lib64/libboost_*so.5; do test ! -e ${lib/so.5/so} && sudo ln -s $lib ${lib/so.5/so} ; done

centos上安装opencv2几个痛点:

  • 先把cmake升级到2.8.1x,然后 cmake28(不能cmake)
  • 记得把CC/CXX设置为gcc4.4版:env CC=/usr/bin/gcc44 CXX=/usr/bin/g++44  cmake28 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr -D BUILD_NEW_PYTHON_SUPPORT=NO ..
  • make前先解决依赖:

    sudo yum install gtk+-devel.x86_64 gimp-devel.x86_64 gimp-devel-tools.x86_64 gimp-help-browser.x86_64 zlib-devel.x86_64 libtiff-devel.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 gstreamer-devel.x86_64 libavc1394-devel.x86_64 libraw1394-devel.x86_64 libdc1394-devel.x86_64 jasper-devel.x86_64 jasper-utils.x86_84 swig python libtool nasm.x86_84

时间: 2024-10-11 16:47:54

wdetect获取截图内容的相关文章

iOS 【野路子】获取WKWebView内容高度做H5原生连接

前言:是这样的,刚写完上一篇文章还没缓过神来,上一篇文章我还提到了,想和大家聊聊原生+H5如何无缝连接的故事.结果我朋友就给我发了两篇他的作品.他的做法也都有独到之处.好的文章都是这样,让你每次看都能有新的收获,我们也都致力于写一些能帮别人解决问题的文章,下面我用另一种方式来完美实现这个问题.毕竟之前大家都是根据UIWebView写的,我来说说换成WK之后的区别,主题思路也不同哦~ 插两个链接,是我朋友的大家也可以做个对比 iOS [终极方案]精准获取webView内容高度,自适应高度 iOS

从html字符串中获取div内容---jquery

思考的问题: 怎么在一个网页的div中嵌套另外的网页(不使用inclue,iframe和frame,不使用他们的原因,include只能嵌套静态网页,iframe对网络爬虫影响,frame嵌套网页无法获取父级页面信息,不够灵活) 如果不想嵌套整个网页怎么办?(只是嵌套另外页面的部分内容) 回答(想法): 使用jquery的ajax函数或者load函数可以获取网页内容,从而实现嵌套网页(获取到的网页内容是html字符串) 怎么从字符串中获取部分内容? 实践1: index.html页面(在这个页面

获取mysql内容,生成xml文件,并且以webservice形式发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 其实是三个知识点综合到一起的,包括如何访问mysql,如何生成xml文件,如何使用进行webservice开发 好了,话不多说,直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcepti

iOS 【终极方案】精准获取webView内容高度,自适应高度

前言:是这样的,刚写完上一篇文章还没缓过神来,上一篇文章我还提到了,想和大家聊聊原生+H5如何无缝连接的故事.结果我朋友就给我发了两篇他的作品.他的做法也都有独到之处.好的文章都是这样,让你每次看都能有新的收获,我们也都致力于写一些能帮别人解决问题的文章,下面我用另一种方式来完美实现这个问题.毕竟之前大家都是根据UIWebView写的,我来说说换成WK之后的区别,主题思路也不同哦~ 插两个链接,是我朋友的大家也可以做个对比 iOS [终极方案]精准获取webView内容高度,自适应高度 iOS

PHP ftp获取目录内容为空

使用PHP的ftp函数获取目录内容,ftp_nlist()和ftp_rawlist()返回都为空. 查了一圈资料找不到答案,然后用Python写了一个,一样的操作就可以获取目录内容. 抓包发现,Python在获取目录内容之前自动改变为被动模式了,在PHP中ftp_rawlist()前也手动ftp_pasv($con, TRUE),就能获取到内容了. 总结:也许是对ftp协议不理解,导致了这样的问题,在此写下,防止各位再踩坑^_^

PHP curl获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置

使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出.这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true. 1.curl获取页面内容, 直接输出例子: <?php $url = 'http://52php.cnblogs.com'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPE

Swift - 文本输入框内容改变时响应,并获取最新内容

1,问题描述 有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用. 2,实现原理 (1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议UITextFieldDelegate. 同时在viewDidLoad方法内将文本框的代理设置为MainListController当前实例. 然后实现textFile的shouldChangeCharactersInRange方法就能在文本框将要变化的时候执行一些代码. (2)但这

appium如何获取conten-desc内容文本

如何获取conten-desc内容文本 定位到该元素,通过getAttribute("name");来获取内容如:媒体报道 总结: 思路和selenium一样,可以理解为获取它的value值,只不过是括号写的name

POST信息模拟登录获取页面内容

最近项目里有一个是要模拟登录后,访问固定页面获取内容的要求,一开始用JQ AJAX好像不支持跨域请求.后使用.net中HttpWebRequest对象来获取.一开始访问总是无法在第二个页面正常访问,好像没通过登录验证,用postman模拟提交正常,后查询出原是忘记在第二次请求没把cookies关联上,关联上后请求正常. string wurl=""; string username="haxinet"; string userpwd="haxinet&qu