繁体   English   中英

在python opencv中写入和/或读取后的图像像素值

[英]Image pixels values after imwrite and/or imread in python opencv

我正在尝试使用图像编辑器(例如MS paint或paint.net)在图像上绘制具有固定颜色(例如RGB = 255,0,0的纯红色)的边界框,然后在python中加载图像(例如opencv imread),方法是查找具有此RGB值(或BGR值在0、0、255中)的像素,以便我可以创建用于对象检测的标签。

但是,保存并加载图像后,我看不到任何具有此类RGB或BGR值的像素。 相反,这些像素在可能与我指定的值相差甚远的值范围内。

我还尝试将以下内容用于实验目的:

cv2.rectangle(img_arr, (10, 10), (60, 60), (0, 0, 255), thickness=1)

在此语句之后,我确实看到了具有值(0、0、255)的像素。 但是,当我运行cv2.imwrite然后像这样运行cv2.imread时:

cv2.imwrite(full_path_name, img_arr)

然后:

 img_arr = cv2.imread(full_path_name)

我在这个新的img_arr中注意到,这些BGR值不再有任何像素。 问题是什么?

回到标记图像以进行对象检测的原始问题,我不想使用任何标记工具,因为大多数工具都在检测鼠标移动,但是,我的对象检测任务是检测文本区域,这需要非常准确的边框这样图像分割和字符识别的后期阶段就不会太难。 因此,我更喜欢采用静态方式,以便可以调整边界框以使其准确甚至可以进行检查。 完成后,我们将创建标签。 这个想法甚至行得通吗?

非常感谢你!

JPEG用作图像处理任务的中间存储时,请务必小心,因为它是有损格式,并且在以后读回它们时,值可能会有所不同。

考虑为中间存储使用无损PNG格式。 或使用NetPBM PGM (灰度)或PPM (彩色)格式来读取和写入特别简单的格式-尽管请注意,它不能保留元数据(例如版权或EXIF数据)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM