halcon readimage不支持中文路径?

Halcon v17.x之前的软件版本都不支持中文路径。Hdevelop环境下没问题,但是VC++下会报异常。

read_image (Image, '我是中文.jpg')

bool HalconImageWnd::readImage(const char *ch)
{
    try
    {
        //HalconCpp::SetHcppInterfaceStringEncodingIsUtf8(false);
        //HString::FromLocal8Bit(ch);
        m_image.ReadImage(ch);
        m_image.GetImageSize(&m_width, &m_height);
    }
    catch (...)
    {
        qDebug("readImage error");
        return false;
    }

    ....
}

解决方法1:(亲测有效)

在算子ReadImage之前,添加以下,即可!

//设置halcon的文件路径为utf8,解决中文乱码

SetSystem("filename_encoding", "utf8");

解决方法2:

从Halcon v18.x开始支持中文路径,但是要事先调用下面算子来进行设置支持中文解析:

将本地8位编码的字符串传递给HALCON C或HALCON/C++时,必须更改接口默认编码

HALCON /C调用

HalconCpp::SetHcInterfaceStringEncodingIsUtf8(false);

HALCON/C++调用

HalconCpp::SetHcppInterfaceStringEncodingIsUtf8(false);

或传递给HALCON的字符串使用合适的转换函数,例如

HString::FromLocal8Bit(ch);

---

参考文献

C:/Program Files/MVTec/HALCON-19.11-Progress/doc/html/manuals/programmers_guide/programmers_guide_0035.html

7.4   Writing a Program with non-ASCII Characters

set_system ('filename_encoding', 'utf8')

你可能感兴趣的:(Halcon,Halcon,中文路径,readimage)