小编VIC*_*TOR的帖子

TensorFlow:培训我自己的形象

我是TensorFlow的新手.我正在寻找有关图像识别的帮助,我可以在那里训练自己的图像数据集.

有没有训练新数据集的例子?

python conv-neural-network tensorflow tensorflow-datasets

38
推荐指数
2
解决办法
4万
查看次数

OpenCV在Windows上安装opencv_contrib

我正在使用OpenCV 3.1.0,Python 2.7.11Windows 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,出现错误.

在此输入图像描述

我正在寻求帮助如何解决它.谢谢.

python opencv opencv-contrib

14
推荐指数
3
解决办法
4万
查看次数

降噪并过滤图像

我正在进行牌照识别.我已经裁掉了盘子,但它非常模糊.因此,我无法拆分数字/字符并识别它.

这是我的形象:

在此输入图像描述

我试图通过使用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,我得到:

在此输入图像描述

python opencv image image-processing scikit-image

9
推荐指数
3
解决办法
5149
查看次数

Anaconda Python在Windows10中安装imutils

我使用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的方法?

python anaconda

6
推荐指数
2
解决办法
2万
查看次数

通过直方图匹配比较图像

我想通过使用直方图匹配和方法关联比较两个图像

在此处输入图片说明
在此处输入图片说明

显然,这两个图像是相似的。然后,我尝试找出与以下代码的相关性。

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

为什么相关性如此之小?

如何改善结果?谢谢。

python opencv image-recognition

6
推荐指数
1
解决办法
1698
查看次数

在Windows python中安装Openalpr

我正在使用Windows 10,我想安装openalpr并将库导入python.

但是,在下载了预编译的Windows二进制文件后,我不知道如何在python中导入alpr

我按照OpenAlpr中的说明进行操作

我在这里下载了openalpr-2.3.0-win-64bit.zip 并将其解压缩.

之后,我可以alpr在命令行中运行,但我无法导入它.

任何人都可以教我如何在python中导入Openalpr.谢谢.

python open-source python-2.7 python-3.x openalpr

6
推荐指数
1
解决办法
1万
查看次数

一类 SVM,全部为 -1

我正在做一个二元分类,只返回图像的“是”或“否由于我只获得了一个类别的图像,所以我想在“目标”和“异常值”之间进行分类。

例如,我正在对消防员进行分类。 在此输入图像描述

我正在使用 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”。谁能告诉我出了什么问题吗?

python image svm scikit-learn

5
推荐指数
1
解决办法
2308
查看次数

Scikit-learn SVM数字识别

我想制作一个程序来识别图像中的数字.我按照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" 的" 默认"数据集时,它看起来像:在此输入图像描述

我的图片编号"9":

在此输入图像描述

您可以看到我的图像的非零数字非常大.

我不知道为什么.我正在寻求帮助来解决我的问题.谢谢

python image image-processing scikit-learn

5
推荐指数
1
解决办法
3113
查看次数

TensorFlow图像分类

我对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 image-processing tensorflow tensorboard

4
推荐指数
1
解决办法
9922
查看次数

OpenCV grabcut()背景颜色和Python中的轮廓

我正在使用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 opencv image image-processing

4
推荐指数
1
解决办法
6058
查看次数

Python ssh 读取镜像

我正在使用 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_fileprint remote_file

它返回 **paramiko.sftp_file.SFTPFile object at 0x000000000572AC50**

最后,我尝试阅读并显示图像:

img = cv2.imread(remote_file)
cv2.imshow("image", img)
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
Run Code Online (Sandbox Code Playgroud)

________________________________________________________________________________________-

我正在寻求帮助,如何从另一台远程机器读取图像。我的做法是否正确?谢谢你。

python ssh sftp opencv paramiko

3
推荐指数
1
解决办法
1687
查看次数

在命令行中捕获 RTSP

我想在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。谢谢。

python video ubuntu opencv rtsp

2
推荐指数
1
解决办法
6739
查看次数

检查整数是否在其中一个范围内

不要打赌我了.这不是一个重复的问题.

我有一个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)如果范围数组的大小未知(不固定),我该如何检查数字?

javascript

1
推荐指数
1
解决办法
91
查看次数