ReadImage读取图像出错

错误现象:

一开始是使用QFileDialog::getOpenFileName 选择文件进行读取,程序报错

程序长这样:

void Read_image() {
	QString filename;
	state = 0;
	filename = QFileDialog::getOpenFileName(this,
		tr("选择图像"),
		"",
		tr("Images (*.png *.bmp *.jpg *.tif *.GIF )"));
	if (filename.isEmpty())
	{
		return;
	}
	string str = filename.toStdString();  // 将filename转变为string类型;
	
	// Local iconic variables
	HObject  ho_Clip, ho_Dark, ho_Single, ho_Selected;

	// Local control variables
	HTuple  hv_Width, hv_Height, hv_UsedThreshold;

	//clip.hdev: Orientation of clips
	//
	//打开一张图像
	
	//const char* ch = str.c_str();
	HTuple hTuple;
	hTuple = filename.toStdString().c_str();

	ReadImage(&ho_Clip, hTuple);
}

尝试努力:

还使用了QString转HTuple,还是不行,中间多次变换转换思路。

最后直接写入图片路径,验证还是会出现同样的问题,得出是读取图像处理错。

得出错误:

最后借鉴一位老哥的博客,得出错误所在,原来是图片格式错误。

转自这位博主:Halcon读图出错怎么办?ReadImage常见错误与处理方法(C++)_Color Space的技术博客_51CTO博客

错误:图片实际格式与图片后缀名不一致,导致读取文件错误。

查找正确的格式:打开软件“UltraEdit”(下载地址:http://www.onlinedown.net/soft/7752.htm)使用16进制查看:

数据前几位即为图片格式,一般有:

后面换了一张图片读取正确。

总结:

        也是想记录一下学习过程中遇到的一些问题大家一起看吧,找这个问题所在也是浪费了挺久的时间的,所以想写出来让大家更容易看到。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值