我在Ubuntu 14.04中使用python 2.7.我用这些命令安装了scikit-learn,numpy和matplotlib:
sudo apt-get install build-essential python-dev python-numpy \
python-numpy-dev python-scipy libatlas-dev g++ python-matplotlib \
ipython
Run Code Online (Sandbox Code Playgroud)
但是当我导入这些包时:
from sklearn.cross_validation import train_test_split
Run Code Online (Sandbox Code Playgroud)
它返回给我这个错误:
ImportError: No module named sklearn.cross_validation
Run Code Online (Sandbox Code Playgroud)
我需要做什么?
我目前在Ubuntu 14.04,使用python 2.7和cv2.
当我运行此代码时:
import numpy as np
import cv2
img = cv2.imread('2015-05-27-191152.jpg',0)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Run Code Online (Sandbox Code Playgroud)
它返回:
File "face_detection.py", line 11, in <module>
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/imgproc/src/color.cpp:7564: error: (-215) scn == 3 || scn == 4 in function cvtColor
Run Code Online (Sandbox Code Playgroud)
我已经在这里搜索了一个答案,说我可能以错误的方式加载我的照片,因为它应该有3个维度:行,列和深度.
当我打印img.shape时它只返回两个数字,所以我一定做错了.但我不知道加载照片的正确方法.
我正在尝试在python 2.7中学习cv2,但是当我运行我的代码时,在它的特定部分:
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('2015-05-27-191152.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
Run Code Online (Sandbox Code Playgroud)
它返回:
File "face_detection.py", line 11, in <module>
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/objdetect/src/cascadedetect.cpp:1595: error: (-215) !empty() in function detectMultiScale
Run Code Online (Sandbox Code Playgroud)
我试着在这里搜索答案,但我能找到的最好的是我必须以错误的方式加载face_cascade ...有什么帮助吗?
我需要一个字典,其中有两个名称相同但值不同的键。我尝试执行此操作的一种方法是创建一个类,在其中放置字典的每个键名称,以便它们成为不同的对象:
names = ["1", "1"]
values = [[1, 2, 3], [4, 5, 6]]
dict = {}
class Sets(object):
def __init__(self,name):
self.name = name
for i in range(len(names)):
dict[Sets(names[i])] = values[i]
print dict
Run Code Online (Sandbox Code Playgroud)
我期待的结果是:
{"1": [1, 2, 3], "1": [4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)
但它却是:
{"1": [4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)
[编辑] 所以我发现字典中的键应该是唯一的,有两个同名的键是对字典的错误使用。所以我需要重新思考我的问题并使用Python中可用的其他方法。