2024-05-14 16:41:13 发布
网友
我需要使用OpenCV读取图像的RGB值,但当我读取如下图像时,有时它不会返回准确的值
import cv2 img = cv2.imread('camel.jpeg')
比如说
为了这张照片( camel.jpg )一切都是正确的,但是对于这张图片(result.jpg),它返回每个像素255。 但如果尝试读取特定像素,我可以达到该像素的RGB值。我尝试使用for循环,但结果不正确,它再次为每个像素返回255。我该怎么办
我在Python/OpenCV中的camel图像上这样做是为了得到两个像素。通道值不仅仅是0和255
import cv2 import numpy as np # load image and get dimensions img = cv2.imread("camel.jpg") hh, ww = img.shape[:2] # get pixel at x=0,y=0 px1 = img[0:1, 0:1] # get pixel at center of image hh2 = hh//2 ww2 = ww//2 px2 = img[hh2:hh2+1, ww2:ww2+1] print(px1) print(px2)
结果:
[[[0 0 0]]] [[[129 0 193]]]
但是您应该能够只print(img)或使用Numpy裁剪区域并打印它
print(img)
也许您的camel.jpeg图像有问题,但在保存和发布时会得到修复。试着上传你发布的文件,看看是否有同样的问题
我用枕头做这个,效果非常好
from PIL import Image import numpy as np img = Image.open('camel.jpeg') img_array = np.array(img) print(img_array.shape) print(img_array)
结果
(1477, 1200, 3) [[[105 159 206] [106 160 207] [106 160 207] ... [215 215 217] [215 215 217] [216 216 218]] [[105 159 206] [106 160 207] [106 160 207] ...
它工作得很好,可以说img_array的形状也与camel.jpeg的分辨率相匹配
img_array
camel.jpeg
我在Python/OpenCV中的camel图像上这样做是为了得到两个像素。通道值不仅仅是0和255
结果:
但是您应该能够只
print(img)
或使用Numpy裁剪区域并打印它也许您的camel.jpeg图像有问题,但在保存和发布时会得到修复。试着上传你发布的文件,看看是否有同样的问题
我用枕头做这个,效果非常好
结果
它工作得很好,可以说
img_array
的形状也与camel.jpeg
的分辨率相匹配相关问题 更多 >
编程相关推荐