我想要一個彩色圖像並將其轉換爲二進制圖像,其中接近黑色或白色返回False,並且所有中間值返回True。Python - 使用中間值轉換爲二進制彩色圖像
以下兩個條件同時施加的正確語法是什麼?
binary = color.rgb2gray(img) > 0.05
binary = color.rgb2gray(img) < 0.95
如果我用這個:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from skimage import color
import requests
from PIL import Image
from StringIO import StringIO
url = 'https://mycarta.files.wordpress.com/2014/03/spectrogram_jet.png'
r = requests.get(url)
img = np.asarray(Image.open(StringIO(r.content)).convert('RGB'))
然後:
binary = color.rgb2gray(img) < 0.95
我會得到,我可以繪製一個合適的二進制圖像:
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)
plt.imshow(binary, cmap='gray')
ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])
plt.show()
同樣與此:
color.rgb2gray(img) < 0.95
但是,如果我想他們這樣在一起:
binary = color.rgb2gray(img) > 0.05 and color.rgb2gray(img) < 0.95
我得到這個消息:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
你跑什麼代碼「一起嘗試」? –
與@ caenyon的回答建議一樣:binary = color.rgb2gray(img)> 0.05 and color.rgb2gray(img)<0.95 – MyCarta
什麼是img變量?一個完整的例子會更容易(導入等) – Felix