【发布时间】:2019-03-22 17:39:37
【问题描述】:
为了我的研究,我想编译一个代码来将图片像素值从 RGB 更改为 HSV,如果 V 值高于某个值,则再更改为 RGB。
但是,要做到这一点,我必须使用cv2.cvtColor(src,code)。
当我使用cv2.cvtColor(image, cv2.COLOR_BGR2HSV) 时,效果很好!
但是当我使用cv2.cvtColor( list or str , cv2.COLOR_HSV2BGR) 时,它产生了错误......
我认为 src 必须是图像。不幸的是,我不得不使用类型列表或 str 或 ndarray..
我努力让他们形象化,但我认为这真的是一项艰巨的任务..
如果您运行下面的代码,numpy 数组首先显示 V 通道。
关闭窗口后,我可以看到这个错误。
Traceback(最近一次调用最后一次):
文件“/home/sjw/PycharmProjects/untitled/hiccc.py”,第 18 行,在 img[i][j] = cv2.cvtColor(y, cv2.COLOR_HSV2BGR) TypeError: src 不是 numpy 数组,也不是标量
但我的问题不仅是知道这个错误,而且还做了一个完整的代码。 我需要你的帮助..拜托.... :(
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('/home/sjw/Pictures/seulgi.jpg')
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
img_h, img_s, img_v = cv2.split(img2)
plt.imshow(img_v, interpolation='nearest')
plt.show()
for i in range(1, 1001):
for j in range(1, 1501):
if img_v[i][j] > 125:
y=''.join(str(v) for v in img_v[i:i][j:j])
print(type(y))
img[i][j] = cv2.cvtColor(y, cv2.COLOR_HSV2BGR)
cv2.imshow('sadd',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
-
修复格式以提高可读性
标签: python image opencv colors