手把手教你使用 Imagepro plus - 宏操作【转】
Imagepro plus操作5 – 提高测量效率的必须技术-宏操作(续)
星期三, 七月 7th, 2010 | 图像分析 | hbchendl | 浏览:897
请先参阅:Imagepro plus操作5 – 提高测量效率的必须技术-宏操作
上一篇只是叙述了最简单的宏操作方法。现在我们可以使用一点稍复杂的技巧来提高效率。这也是我刚学会的几个小招术。使用稍复杂一点的宏,需要你了解 一些编程语言的常识。如果一点也不懂编程语言,理解起来会很困难。但也别太紧张,不会写代码不要紧,只要有一点基本的知识的够用了。
还是以上一篇的例子来说吧。上一篇我编制了一个宏操作程序,然后按一个快捷键就能把一张照片的黑白反转过来了。如果要处理几百张照片,还是得按几百次键的。
现在我们试着制作一个宏操作,运行它就能把文件夹里所有的文件全给处理了。
打开IPP后加载上默认的宏操作脚本default.ipm。如果你从未用过宏,打开IPP的时候这个默认脚本就已经加载上了。如果要重新加载这个 默认脚本,就点macro 窗口中的 change macro按纽,在弹出的文件选择窗口中选择default.ipm打开就行了。
再点击edit macro,就可以看到宏操作的代码了。现在我没录制宏,所以里面是空的。

下面我录制了一个宏操作,名称是ccc。动作是:
invert contrast
apply contrast
save file
close file
就是把一张打开的图片黑白翻转后保存,然后关闭这张图片。
录制好这个宏之后,再次edit macro,看看录制的代码是什么样子的:

Sub ccc()
‘D
ret = IpLutSetAttr(LUT_CONTRAST, -1)
ret = IpLutApply()
ret = IpWsSave()
ret = IpDocClose()
ret = IpIOvrShow(0)
ret = IpAnShow(0)
ret = IpDcnvShow(0)
End Sub
所谓编制程序,就是用手写下这些代码。
所谓录制宏操作,就是IPP根据你的操作内容,记录下来,自动生成一组完成操作的代码。所以有了宏操作这个功能,不会写代码也能写代码了。
到现在为止,还不是本篇的主题。下面是想法把这组代码能应用到多张照片上。
对一组照片进行处理的程序代码是相当复杂的,咱们自己编制不了。不过,IPP提供了现成的代码可以利用的。这就是batch_process.ipm。
还是点macro — change macro,在打开的文件选择窗口中,选择batch_process.ipm打开。
再点edit macro弹出程序编辑窗口,这回代码就太多了。

看不懂不要紧。这个宏的功能就是一个一个地打开文件,处理一下,再返回。只要我们把它处理图片的代码换成我们自己处理图片的代码,它就能用我们自己的操作批处理我们自己的图片了。
在程序的第119行有这么一段代码:(找119行的方法是:把光标点到一个地方,在窗口右下角看这个位置的LN后面的数字就是行号,col后面的数字 是列)
’ Call processing routine here ***
‘ The document ID and file name are sent here
’ in case the processing routine needs them.
DoStuff docID, gDirStart + fName
‘ Close the initial image
这几句话前面有“ ‘ ”的绿色字母都是说明文字,只有一句话是有用的,就是“dostuff docID,gdirstart+fname“
这个操作是原来程序的操作,把它换成我们自己的操作就行啦。
上去看看刚才我们自己录制的代码,从’D后面开始到end sub之间的代码替换掉上面这句话就行啦!就是这样子:
’ Call processing routine here ***
‘ The document ID and file name are sent here
’ in case the processing routine needs them.
ret = IpLutSetAttr(LUT_CONTRAST, -1)
ret = IpLutApply()
ret = IpWsSave()
ret = IpDocClose()
ret = IpIOvrShow(0)
ret = IpAnShow(0)
ret = IpDcnvShow(0)
‘ Close the initial image
然后保存。就可以用了。
点macro菜单,最下面会有三个子菜单
分别是ProcessDirectory,ProcessOpenDocs,ProcessSubDir。我刚才改的是第一个。处理文件夹。
点processDirectory,先会弹出文件选择窗口,选择待处理图片的文件夹中,任找一个文件点一下。OK之后就没你事了。程序会把这个文件夹里所有的图片文件都给来个黑白颠倒。其他的非图片文件则不会被改动。
还可以使用processopendocs,这是批处理打开的图片,只要按照上述方法改动191行的代码就行了。
原文网址:http://hbchendl.dxyer.cn/1926_69560/
手把手教你使用 Imagepro plus - 宏操作【转】的更多相关文章
- 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...
- 《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)
1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操 ...
- 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是 ...
- 《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
1.简介 在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到.因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助 ...
- 《手把手教你》系列技巧篇(三十四)-java+ selenium自动化测试-单选和多选按钮操作-中篇(详解教程)
1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历单选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选按钮进行实战. 2.d ...
- 《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战. 2.d ...
- 《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何自动化测试,这一篇宏哥在网上找了一个问卷调查,给小伙伴或童鞋们来演示一下.上 ...
- 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
随机推荐
- jQuery中的bind绑定事件与文本框改变事件的临时解决方法
暂时没有想到什么好的解决办法,我现在加了个浏览器判断非ie的话就注册blur事件,这样有个问题就是blur实在别的控件活动焦点的时候,txtStation控件注册的方法是为了填充它紧挨着的一个下拉列表 ...
- 将垃圾送入无底洞,顺便整理dev知识
相信用过Linux的童鞋们都用过crontab来做定时任务,不需要额外的安装程序和配置,一条简单的语句搞定定时任务,但是小伙伴们发现了没,如果你的定时任务执行频率很高而且会产生大量的输出的话,你的老爷 ...
- VC远控(三)磁盘显示
服务端: 发送与接收命令 DWORD WINAPI SLisen(LPVOID lparam) { SOCKET client = (SOCKET)lparam; COMMAND command; w ...
- 三角剖分求多边形面积的交 HDU3060
//三角剖分求多边形面积的交 HDU3060 #include <iostream> #include <cstdio> #include <cstring> #i ...
- Array.prototype.slice.call
Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组 ,::'age'}; Array.prototype.slice.call(arr); ...
- 分区表,桶表,外部表,以及hive一些命令行小工具
hive中的表与hdfs中的文件通过metastore关联起来的.Hive的数据模型:内部表,分区表,外部表,桶表受控表(managed table):包括内部表,分区表,桶表 内部表: 我们删除表的 ...
- Linux下动态库生成和使用
Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...
- LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、
四.联接操作符 联接是指将一个数据源对象与另一个数据源对象进行关联或者联合的操作.这两个数据源对象通过一个共同的值或者属性进行关联. LINQ有两个联接操作符:Join和GroupJoin. 1. J ...
- Awk中调用shell命令
Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...
- [转载]关于AutoCAD.NET的辅助方法
转载自:http://www.cnblogs.com/milian/p/3315000.html 求中点坐标: /// <summary> /// 中点 /// </summary& ...