Halcon控制台应用程序(可遍历多图)
弹出的窗体与OpenCV不同,没有最大、最小、关闭。我们可以设置键盘事件退出,尤其在遍历多个图查看每个的效果时很方便。
注意opencv如果使用system("pause");不展示图,必须用waitKey();
VS新建控制台应用程序
#include<halconcpp\HalconCpp.h> using namespace HalconCpp; void main() { HObject ho_Image; HTuple hv_WindowID; ReadImage(&ho_Image, "D:/sunflower.png"); OpenWindow(0, 0, -1, -1, 0, "", "", &hv_WindowID);//-1,-1窗口大小适应图片,若设为200,200时,窗体大小固定 DispObj(ho_Image, hv_WindowID); system("pause"); }
多图遍历展示,鼠标先点击下cmd窗口,再按Esc键
#include<conio.h> //键盘事件 #include<halconcpp\HalconCpp.h> using namespace HalconCpp; void main() { HObject ho_Image, ho_GrayImage, ho_Regions; HTuple hv_WindowID; HTuple hv_ImageFiles, hv_Index; //从路径读图 ListFiles("D:/myPic", ((HTuple("files").Append("follow_links")).Append("recursive")), &hv_ImageFiles); TupleRegexpSelect(hv_ImageFiles, (HTuple("\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$").Append("ignore_case")), &hv_ImageFiles); { HTuple end_val2 = (hv_ImageFiles.TupleLength()) - 1; HTuple step_val2 = 1; for (hv_Index = 0; hv_Index.Continue(end_val2, step_val2); hv_Index += step_val2) { //图像处理程序 ReadImage(&ho_Image, HTuple(hv_ImageFiles[hv_Index])); Rgb1ToGray(ho_Image, &ho_GrayImage); Threshold(ho_GrayImage, &ho_Regions, 45, 55); SetWindowAttr("background_color", "black");//窗体背景色为黑 OpenWindow(0, 0, -1, -1, 0, "", "", &hv_WindowID);//-1,-1窗口大小适应图片 DispObj(ho_Image, hv_WindowID); SetColor(hv_WindowID, "red");//设置二值图目标的颜色(在显示之前) DispObj(ho_Regions, hv_WindowID); //Esc键切换下一张图 while (true) { if (_getch() == 27){ CloseWindow(hv_WindowID); break;//跳出while循环体 } } } } }
对应的halcon程序(无键盘事件)
list_files ('D:/myPic', ['files','follow_links','recursive'], ImageFiles) tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles) for Index := 0 to |ImageFiles| - 1 by 1 read_image (Image, ImageFiles[Index]) * Image Acquisition 01: Do something rgb1_to_gray (Image, GrayImage) threshold (GrayImage, Regions, 45, 55) dev_open_window (0, 0, -1, -1, 'black', WindowHandle1) dev_display (GrayImage) dev_set_color ('red') dev_display (Regions) dev_close_window () endfor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!