天天看點

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;
    }
    ....
}      

從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')

繼續閱讀