opencv图像读取问题

opencv的图像读取问题

OpenCV读入的彩色图像是BGR模式,而matplotlib采用RGB模式进行显示,因此需要进行转换。
可以通过通道进行转换,利用

my_image = "my_image.jpg"   # change this to the name of your image file 
# We preprocess the image to fit your algorithm.
fname = "images/" + my_image
print(fname)
#OpenCV读入的彩色图像是BGR模式,而matplotlib采用RGB模式进行显示,因此需要进行转换。
image = cv.imread(fname)
image = cv.cvtColor(image, cv.COLOR_BGR2RGB) # cv2默认为bgr顺序
h, w, g = image.shape
print(h,w,g)
image = cv.resize(image, (num_px,num_px), interpolation=cv.INTER_CUBIC)  #
my_image = image.reshape((1, num_px*num_px*3)).T
#my_image = cv.resize(image, size=(num_px,num_px)).reshape((1, num_px*num_px*3)).T
my_predicted_image = predict(d["w"], d["b"], my_image)
plt.imshow(image)

法二:

img = cv2.imread('b.png')
print(img.shape)
img1 = img.copy()    #改变img1的时候不改变img
img1[:,:,0] = img[:,:,2]
img1[:,:,1] = img[:,:,1]
img1[:,:,2] = img[:,:,0]   #cv2读取的是bgr,转换成rgb就要做一下变通
plt.imshow(img1)
plt.show()

b,g,r=cv2.split(img)

img2=cv2.merge([r.g.b])

还有一个是可以改变通道位置的函数,np.swapaxes(out, 1, 2)

def data_reformat(data):
    """RGB <--> BGR, swap H and W"""
    assert data.ndim == 4
    out = data[:, :, :, ::-1]
    out = np.swapaxes(out, 1, 2)
    return out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值