if(isContainChinese(srcPic.getAbsolutePath())){
FileInputStream inputStream = new FileInputStream(srcPic);
byte[] byt = new byte[(int) srcPic.length()];
int read = inputStream.read(byt);
srcMat = Imgcodecs.imdecode(new MatOfByte(byt), Imgcodecs.IMREAD_COLOR);
}else{
srcMat = Imgcodecs.imread(srcPic.getAbsolutePath(), Imgcodecs.IMREAD_ANYCOLOR);
}
/**
* 判断字符串中是否包含中文
* @param str
* 待校验字符串
* @return 是否为中文
* @warn 不能校验是否为中文标点符号
*/
public static boolean isContainChinese(String str) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(str);
if (m.find()) {
return true;
}
return false;
}
参考:http://blog.joylau.cn/2019/04/03/OpenCV-ByteImage/