MFC-halcon使用技巧.docx_第1页
MFC-halcon使用技巧.docx_第2页
MFC-halcon使用技巧.docx_第3页
MFC-halcon使用技巧.docx_第4页
MFC-halcon使用技巧.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MFC/HALCON混合编程系列八_使用Halcon技巧楼主#更多发布于:2014-03-07 23:36下面是examples中用的到的技巧:本部分设定了隐藏,您已回复过了,以下是隐藏的内容原稿地址:/2316220871/8a0eb9c733002v6x.html1、添加左键点击的等待,这样可以在调试的时候有时间观察结果复制代码1234567891011void click(const Halcon:HWindow &w)cout Click with mouse button to continue .; cout.flush();w.Click();cout okn; cout.flush();2、线性改变图片方法复制代码123456789101112131415161718192021222324252627double t1,t2;in.Display(w);HByteImage out = in;int width = out.Width();int height = out.Height();long end = width * height;cout - copy image bit by bit via linear bit access endl;count_seconds(&t1);for (int k = 0; k end; k+)outk = 255 - ink;count_seconds(&t2);cout (linear) time = (t2-t1)*1000 msec endl;out.Display(w);click(w);3、非线性操作图片复制代码1234567891011count_seconds(&t1);for (int y=0; yheight; y+)for (int x=0; x= 128; / thresholdw.SetColor(yellow);w.SetInsert(xor);reg.Display(w);for (int i=0; i100; i+)(+reg).Display(w); / stepwise dilation of region5 、利用&操作制造圆形ROI复制代码123456789101112131415161718192021222324252627282930313233343536373839void RegionOfInterest()using namespace Halcon;cout endl Restriction of the definition range endl;HByteImage image(mreut);HWindow w(0,0,image.Width(),image.Height();w.SetPart(0,0,image.Height()-1,image.Width()-1);int i;for (i=1; i30; i += 1)(image & HRegion:GenCircle(255,255,i).Display(w);for (; i80; i += 2)(image & HRegion:GenCircle(255,255,i).Display(w);for (; i255; i += 4)(image & HRegion:GenCircle(255,255,i).Display(w);click(w);6、图像的移动,局部增值复制代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879void Move(int x, int y)using namespace Halcon;cout endl Move image with offset x= x and y= y endl;HByteImage in(mreut);HWindow w(0,0,in.Width(),in.Height();w.SetPart(0,0,in.Height()-1,in.Width()-1);in.Display(w);HByteImage out = in;for (HImageIterator it(in,-x,-y,x,y); it.Continue(); +it)outit = init(x,y);/这里是图片的每一个像素点都进行移动out.Display(w);click(w);void Add(int val)using namespace Halcon;cout endl Add gray value val to inner image part endl;HByteImage in(mreut);HWindow w(0,0,in.Width(),in.Height();w.SetPart(0,0,in.Height()-1,in.Width()-1);in.Display(w);HByteImage out = in;HCircle circle(HDPoint2D(256,256),200);for (HImageIterator it(in,HRegion(circle); it.Continue(); +it)outit = HClipByte(init + val);/这里图片中相应的圆的范围增加相应的val值out.Display(w);click(w);7 、自定义模板滤波,这里是sobel纵向复制代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051void SobelY()using namespace Halcon;cout endl Apply simple sobel filter in Y-direction endl;HByteImage in(mreut);HWindow w(0,0,in.Width(),in.Height();w.SetPart(0,0,in.Height()-1,in.Width()-1);in.Display(w);HByteImage out = in;for (HImageIterator it(in,3,3); it.Continue(); +it)int val = -2 * (int)init(-1,-1) -(int)init(0,-1) -2 * (int)init(1,-1) +2 * (int)init(-1,1) +(int)init(0,1) +2 * (int)init(1,1);outit = HClipByte(HAbs(long)val);out.Display(w);click(w);Note:除了click(w)来等待点击,另一种方法是直接使用w.Click()8 、watersheds的使用复制代码12345678910111213HByteImage gauss = image.GaussImage(9);HByteImage invert = gauss.InvertImage();HRegion sheds;cout endl Starting watersheds algorithm. endl;cout Attention: Dependent on your hardware this may take some time! endl;HRegionArray cells = invert.Watersheds(&sheds);cout cells.Num() cells found! endl endl;9、直方图的建立和数据的保存复制代码1234567891011121314151617181920212223enum MAX_WIDTH = 1300, ADD = 10 ;/ Building distribution:int histoMAX_WIDTH+2*ADD;int i;for (i=0; iMAX_WIDTH+2*ADD; i+)histoi = 0; /初始化for (i=0; icells.Num(); i+) /这里的cells是8中的结果for (int k=-ADD; k=ADD; k+) /从-Add到Add的数据统计为一组histo(int)(cellsi.X()+k+ADD+; /直方图的赋值,这里的X()得到的是第i个-region的中心点的行坐标,那么直方图中向右-偏移ADD个单位(为了不从小于0的位置开始)所在的一个宽度-为2*ADD的柱状图(高度+1)/ Writing distribution into file:ofstream out(cells.dat);for (i=0; iMAX_WIDTH+2*ADD; i+)out i-ADD histoi endl;cout Distribution of cell sizes saved in file cells.dat. endl;cout endl;cout Click with mouse button to continue . endl;w.Click();cout The End. endl;note: 这里每行的region个数被统计,并且以一个宽度为2*ADD的柱状图来表示个数10 、部分显示图片以及鼠标点击的操作复制代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657cout - Display image endl;Mandrill.Display(w);cout - Display image parts endl;w.SetPart ( 0,100,312,412); Mandrill.Display (w);w.SetPart ( 50,150,262,362); Mandrill.Display (w);w.SetPart (100,200,212,312); Mandrill.Display (w);w.SetPart (150,250,162,262); Mandrill.Display (w);w.SetPart (155,255,157,257); Mandrill.Display (w);w.SetPart ( 0, 0,511,511); Mandrill.Display (w);鼠标点击事件cout Press left, middle, or right mouse button! e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论