to_gray方法zip迭代导致图片异常无法正确识别
Closed this issue · 0 comments
99swiftlife commented
我在运行时候发现圣遗物的信息提取失败,发现是模型不能从图片中识别文字信息,我查看了src/inferences/pre_process.rs中的to_gray方法,感觉其中循环的zip迭代方式可能不妥,zip同时迭代行和列好像导致最终图像只包含一条线,我将zip迭代改成了普通的图像遍历方式之后成功运行并导出了json,请问这样的修改是否会导致其它不好的效果,如果是该如何正确解决呢?修改部分如下,注释是原代码,下方为修改后部分。
pub fn to_gray(raw: &RgbImage) -> GrayImageFloat {
let mut new_gray = GrayImageFloat::new(raw.width(), raw.height());
// for (x, y) in (0..raw.width()).zip(0..raw.height()) {
// let rgb = raw.get_pixel(x, y);
// let r = rgb[0];
// let g = rgb[1];
// let b = rgb[2];
// let r = r as f32 / 255.0;
// let g = g as f32 / 255.0;
// let b = b as f32 / 255.0;
// let gray = r as f32 * 0.2989 + g as f32 * 0.5870 + b as f32 * 0.1140;
// let grayp = new_gray.get_pixel_mut(x, y);
// grayp[0] = gray ;
// }
for x in (0..raw.width()){
for y in(0..raw.height()){
let rgb = raw.get_pixel(x, y);
let r = rgb[0];
let g = rgb[1];
let b = rgb[2];
let r = r as f32 / 255.0;
let g = g as f32 / 255.0;
let b = b as f32 / 255.0;
let gray = r as f32 * 0.2989 + g as f32 * 0.5870 + b as f32 * 0.1140;
let grayp = new_gray.get_pixel_mut(x, y);
grayp[0] = gray;
}
}
new_gray
}