Easyx图形库使用(潜力无限的图像处理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

图像处理是一个刚需。特别是工业图像处理,有这么几种方法。要么是有能力开发的公司,用opencv开发,或者是一些代理公司,用halcon或者是vision pro进行开发。但是所有的开发,都是需要公司具备一定的开发能力。但是还有一些场景,本身其实可以通过常用的算法,配合光源就可以做到很高的辨识度。这些小应用,其实可以通过easyx+图像算法就可以解决了。

1、通过easyx的api读取数据

前期开发的时候,一般就可以通过单个图像来进行处理。等到后期部署的时候,就可以接入usb camera,或者是网络摄像机进行处理。这是用easyx处理的一般方法。

2、图像处理的一般套路

对于图像处理,通常处理的办法就是灰化、降噪、边缘检测、膨胀、腐蚀、轮廓分割,这些都是套路。即使不用opencv写,自己写一下也不是很难的事情。但是这样做出来的软件就很小,也没有opencv、halcon的限制。

3、参数配置

配置过程中势必涉及到一些参数的设置,那么可以通过InputBox的方法进行参数调试。当然,如果调试的参数比较多,那么可以通过按键+窗口配置的方法,对不同的参数进行调试,这样比单纯的方法调试效率高很多。

4、接入的摄像头

接入的摄像头尽量用常用的摄像头,比如usb摄像头。如果厂家有网络摄像头和对应的SDK,也是可以的。拿不到网络摄像头的SDK,有rtsp地址、支持rtsp协议,这也是可以的。

5、外部第三方的API

还有一些应用是需要外部api支持的,比如某度、某巴巴,这些网络api也可以拓展我们的功能,比如身份证识别、驾驶证识别、车牌识别等等。

6、简单的demo

前面我们做过一个灰度图的案例,这里继续讲一个底片渲染的案例。整体流程差不多,首先是读入图片。读入之后,就是显示。显示完之后,通过GetImageBuffer获取地址,直接对像素数据进行处理。除了处理图片,这里多一个功能,那就是saveimage。

复制代码
#include <graphics.h>
#include <conio.h>

// 底片效果
void ColorInvert(IMAGE *pimg)
{
	// 获取指向显示缓冲区的指针
	DWORD* pMem = GetImageBuffer(pimg);

	// 直接对显示缓冲区赋值
	for (int i = pimg->getwidth() * pimg->getheight() - 1; i >= 0; i--)
	{
		pMem[i] = (~pMem[i]) & 0x00FFFFFF;
	}
}

// 主函数
int main(int argc, char* argv[])
{
	// 初始化绘图环境
	initgraph(512, 512);

	// 获取图像
	IMAGE img;
	loadimage(&img, _T("./lena.png"));

	// 显示原始图像
	putimage(0, 0, &img);

	// 任意键执行
	_getch();

	// 底片效果
	ColorInvert(&img);

	// 显示处理后的图像
	putimage(0, 0, &img);

	// 任意键关闭绘图环境
	_getch();

	// 保存图片
	saveimage(_T("./lena_new.png"), &img);

	closegraph();
	return 0;
}
相关推荐
自不量力的A同学9 小时前
Solon AI v3.9 正式发布:全能 Skill 爆发
java·网络·人工智能
一枕眠秋雨>o<9 小时前
从抽象到具象:TBE如何重构AI算子的编译哲学
人工智能
xiaobaibai1539 小时前
决策引擎深度拆解:AdAgent 用 CoT+RL 实现营销自主化决策
大数据·人工智能
island13149 小时前
CANN ops-nn 算子库深度解析:神经网络核心计算的硬件映射、Tiling 策略与算子融合机制
人工智能·深度学习·神经网络
冬奇Lab9 小时前
一天一个开源项目(第14篇):CC Workflow Studio - 可视化AI工作流编辑器,让AI自动化更简单
人工智能·开源·编辑器
是小蟹呀^9 小时前
从稀疏到自适应:人脸识别中稀疏表示的核心演进
人工智能·分类
云边有个稻草人9 小时前
CANN ops-nn:筑牢AIGC的神经网络算子算力底座
人工智能·神经网络·aigc·cann
island13149 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 架构、模板元编程与融合算子的显存管理策略
人工智能·神经网络·架构·智能路由器
结局无敌9 小时前
从算子到生态:cann/ops-nn 如何编织一张高性能AI的协作之网
人工智能
chaser&upper9 小时前
击穿长文本极限:在 AtomGit 破译 CANN ops-nn 的注意力加速密码
人工智能·深度学习·神经网络