我是TensorFlow的新手.我正在寻找有关图像识别的帮助,我可以在那里训练自己的图像数据集.
有没有训练新数据集的例子?
我正在使用OpenCV 3.1.0,Python 2.7.11和Windows 10.我想在OpenCV中构建额外的模块(opencv_contrib).
我按照这个GitHub中的步骤进行操作.
$ cd <opencv_build_directory>
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
$ make -j5
Run Code Online (Sandbox Code Playgroud)
当我输入时cmake _DOPENCV_EXTRA_MODULES_PATH=C:\opencv_contrib\opencv_contrib/modules C:\opencv\sources,出现错误.
我正在寻求帮助如何解决它.谢谢.
我正在进行牌照识别.我已经裁掉了盘子,但它非常模糊.因此,我无法拆分数字/字符并识别它.
这是我的形象:
我试图通过使用scikit图像功能去噪它.
首先,导入库:
import cv2
from skimage import restoration
from skimage.filters import threshold_otsu, rank
from skimage.morphology import closing, square, disk
Run Code Online (Sandbox Code Playgroud)
然后,我读取图像并将其转换为灰度
image = cv2.imread("plate.jpg")
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Run Code Online (Sandbox Code Playgroud)
我试着消除噪音:
denoise = restoration.denoise_tv_chambolle(image , weight=0.1)
thresh = threshold_otsu(denoise)
bw = closing(denoise > thresh, square(2))
Run Code Online (Sandbox Code Playgroud)
我得到的是:
如您所见,所有数字都混合在一起.因此,我无法将它们分开并逐一识别这些角色.
我期待的是这样的(我画它):
我正在寻求帮助,我怎样才能更好地过滤图像?谢谢.
================================================== =================== 更新:
使用后skimage.morphology.erosion,我得到:
我使用Anaconda2 Python2.7用的Windows 10.如何安装imutils包?
当我输入: conda install imutils
它回来了
Error: Package missing in current win-64 channels:
- imutils
Run Code Online (Sandbox Code Playgroud)
然后我搜索它
anaconda search -t conda imutils
Run Code Online (Sandbox Code Playgroud)
似乎只有OSX版本,但不是Windows版本.
有没有可以在Anaconda Windows 10中安装imutils的方法?
我想通过使用直方图匹配和方法关联来比较两个图像。
显然,这两个图像是相似的。然后,我尝试找出与以下代码的相关性。
import cv2
import numpy as np
#reading the images and convert them to HSV
base = cv2.imread('base.jpg')
test1 = cv2.imread('test1.jpg')
basehsv = cv2.cvtColor(base,cv2.COLOR_BGR2HSV)
test1hsv = cv2.cvtColor(test1,cv2.COLOR_BGR2HSV)
# Calculate the Hist for each images
histbase = cv2.calcHist(basehsv,[0,1],None,[180,256],ranges)
cv2.normalize(histbase,histbase,0,255,cv2.NORM_MINMAX)
histtest1 = cv2.calcHist(test1hsv,[0,1],None,[180,256],ranges)
cv2.normalize(histtest1,histtest1,0,255,cv2.NORM_MINMAX)
# Compare two Hist. and find out the correlation value
base_test1 = cv2.compareHist(histbase,histtest1,0)
print base_test1
Run Code Online (Sandbox Code Playgroud)
但是,打印出的结果仅为0.05xxx。
为什么相关性如此之小?
如何改善结果?谢谢。
我正在使用Windows 10,我想安装openalpr并将库导入python.
但是,在下载了预编译的Windows二进制文件后,我不知道如何在python中导入alpr
我在这里下载了openalpr-2.3.0-win-64bit.zip 并将其解压缩.
之后,我可以alpr在命令行中运行,但我无法导入它.
任何人都可以教我如何在python中导入Openalpr.谢谢.
我正在做一个二元分类,只返回图像的“是”或“否”。由于我只获得了一个类别的图像,所以我想在“目标”和“异常值”之间进行分类。
我正在使用 Scikit Learn svm.OneClassSVM()。然而,在训练模型之后,即使是预测训练数据,我每次都得到“-1”。
这是我的代码:
X_train = []
for subdir, dirs, files in os.walk("training"):
for imagePath in files:
print ("path = ", imagePath)
img = Image.open(os.path.join(subdir, imagePath))
img = img.resize(sample_size, PIL.Image.ANTIALIAS)
img = np.array(img)
img = img[:,:,0]
img = img.reshape(1, img.shape[0]* img.shape[1])
X_train.append(img[0])
clf = svm.OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)
clf.fit(X_train)
Run Code Online (Sandbox Code Playgroud)
然后我预测“训练数据”的结果
print clf.predict (X_train)
Run Code Online (Sandbox Code Playgroud)
然而,我仍然得到所有“-1”。谁能告诉我出了什么问题吗?
我想制作一个程序来识别图像中的数字.我按照scikit中的教程学习.
我可以训练和适应svm分类器,如下所示.
首先,我导入库和数据集
from sklearn import datasets, svm, metrics
digits = datasets.load_digits()
n_samples = len(digits.images)
data = digits.images.reshape((n_samples, -1))
Run Code Online (Sandbox Code Playgroud)
其次,我创建了SVM模型并使用数据集对其进行训练.
classifier = svm.SVC(gamma = 0.001)
classifier.fit(data[:n_samples], digits.target[:n_samples])
Run Code Online (Sandbox Code Playgroud)
然后,我尝试阅读自己的图像并使用该功能predict()识别数字.
我将图像重塑为(8,8),然后将其转换为1D阵列.
img = misc.imread("w1.jpg")
img = misc.imresize(img, (8, 8))
img = img[:, :, 0]
Run Code Online (Sandbox Code Playgroud)
最后,当我打印出预测时,它返回[1]
predicted = classifier.predict(img.reshape((1,img.shape[0]*img.shape[1] )))
print predicted
Run Code Online (Sandbox Code Playgroud)
无论我使用其他人的图像,它仍然会返回[1]
我的图片编号"9":
您可以看到我的图像的非零数字非常大.
我不知道为什么.我正在寻求帮助来解决我的问题.谢谢
我对TensorFlow很新.我正在使用自己的培训数据库进行图像分类.
但是,在我训练自己的数据集后,我不知道如何对输入图像进行分类.
这是我准备自己的数据集的代码
filenames = ['01.jpg', '02.jpg', '03.jpg', '04.jpg']
label = [0,1,1,1]
filename_queue = tf.train.string_input_producer(filenames)
reader = tf.WholeFileReader()
filename, content = reader.read(filename_queue)
image = tf.image.decode_jpeg(content, channels=3)
image = tf.cast(image, tf.float32)
resized_image = tf.image.resize_images(image, 224, 224)
image_batch , label_batch= tf.train.batch([resized_image,label], batch_size=8, num_threads = 3, capacity=5000)
Run Code Online (Sandbox Code Playgroud)
这是训练数据集的正确代码吗?
之后,我尝试使用它来使用以下代码对输入图像进行分类.
test = ['test.jpg', 'test2.jpg']
test_queue=tf.train.string_input_producer(test)
reader = tf.WholeFileReader()
testname, test_content = reader.read(test_queue)
test = tf.image.decode_jpeg(test_content, channels=3)
test = tf.cast(test, tf.float32)
resized_image = tf.image.resize_images(test, 224,224)
with tf.Session() as sess:
coord = …Run Code Online (Sandbox Code Playgroud) 我正在使用Python和OpenCV.我现在grabcut()用来裁剪我想要的对象.这是我的代码:
img = cv2.imread('test.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
mask = np.zeros(img.shape[:2], np.uint8)
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
rect = (2,2,630,930)
cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0), 0,1).astype('uint8')
img = img*mask2[:,:, np.newaxis]
Run Code Online (Sandbox Code Playgroud)
之后,我试着找出轮廓.
我试图通过下面的代码找到轮廓:
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
Run Code Online (Sandbox Code Playgroud)
并且它返回a contours array长度48.当我画出来的时候:

第一个问题是如何获得这种抓斗的轮廓(阵列)?
第二个问题:如您所见,背景颜色为黑色.如何将背景颜色更改为白色?
谢谢.
我正在使用 Python 2.7 和 OpenCV 2.4。我想读取并显示来自远程机器的图像。然后,我尝试使用库paramiko。但是,我无法读取文件。
这是我的代码。首先,我导入所有库并设置连接:
import paramiko
import cv2
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect("XXX.XXX.XXX",22,username="NAME",password='PW',timeout=4)
Run Code Online (Sandbox Code Playgroud)
其次,我打开一个 SFTP 会话并打开目标图像:
sftp = s.open_sftp()
remote_file = sftp.open('/home/frame/image.jpg')
Run Code Online (Sandbox Code Playgroud)
我尝试打印remote_file:print remote_file
它返回 **paramiko.sftp_file.SFTPFile object at 0x000000000572AC50**
最后,我尝试阅读并显示图像:
img = cv2.imread(remote_file)
cv2.imshow("image", img)
Run Code Online (Sandbox Code Playgroud)
但是,出现错误:
Run Code Online (Sandbox Code Playgroud)File "ssh.py", line 25, in <module> img = cv2.imread(remote_file) TypeError: expected string or Unicode object, SFTPFile found
________________________________________________________________________________________-
我正在寻求帮助,如何从另一台远程机器读取图像。我的做法是否正确?谢谢你。
我想在ubuntu中连续捕获rtsp视频(CCTV)。(在腻子中)
我尝试在Python中使用OpenCV打开rtsp,但是程序会突然终止。
video_capture = cv2.VideoCapture("rtsp://stream_link/")
while True:
ret, frame = video_capture.read()
cv2.imwrite(name,frame)
Run Code Online (Sandbox Code Playgroud)
然后,我转向使用vlc。
vlc -vvv rtsp://192.168.1.128:1554/11 --sout=file/ts:/media/path/to/save/location/recording-$(date +"%Y%m%d%H%M%S").ts -I dummy --stop-time=480 vlc://quit
Run Code Online (Sandbox Code Playgroud)
此外,还有一个巨大的错误。
我正在寻求帮助,如何在命令行中捕获 ubuntu 中的 rtsp。谢谢。
不要打赌我了.这不是一个重复的问题.
我有一个2D数组,其中包含三个范围:
ranges = [
[1,4],
[6,10],
[15,20]
]
Run Code Online (Sandbox Code Playgroud)
我想检查一个数字是否在其中一个范围内.
例如,7它是真实的[6,10]
我试着这样写:
if ( (num >= ranges[0][0] && num =< ranges[0][1]) ||
(num >= ranges[1][0] && num =< ranges[1][1]) ||
(num >= ranges[2][0] && num =< ranges[2][1])) {
return True;
}
else {
return false;
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
(1)有没有更快的方法而不是写这个笨拙的代码?
(2)如果范围数组的大小未知(不固定),我该如何检查数字?
python ×12
opencv ×6
image ×4
scikit-learn ×2
tensorflow ×2
anaconda ×1
javascript ×1
open-source ×1
openalpr ×1
paramiko ×1
python-2.7 ×1
python-3.x ×1
rtsp ×1
scikit-image ×1
sftp ×1
ssh ×1
svm ×1
tensorboard ×1
ubuntu ×1
video ×1