我按照本页的教程进行操作,但cv2.drawContours(im,contours,-1,(0,255,0),3)
执行该行时似乎没有任何结果.我希望看到带有绿色轮廓的star.jpg,如教程中所示.这是我的代码:
import numpy as np
import cv2
im = cv2.imread('C:\Temp\ip\star.jpg')
print im.shape #check if the image is loaded correctly
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im,contours,-1,(0,255,0),3)
pass
Run Code Online (Sandbox Code Playgroud)
没有错误消息.star.jpg是上述网页中的明星.我使用的是opencv 2.4.8和Python 2.7.
drawContours应该在我的屏幕上显示图像吗?如果是这样,我做错了什么?如果没有,我该如何显示图像?
谢谢
编辑:
添加以下行将显示图像:
cv2.imshow("window title", im)
cv2.waitKey()
Run Code Online (Sandbox Code Playgroud)
需要waitKey(),否则窗口将显示灰色背景.根据这篇文章,这是因为waitKey()告诉它开始处理WM_PAINT事件.
保存或恢复时没有错误.权重似乎已正确恢复.
我试图通过遵循karpathy/min-char-rnn.py,sherjilozair/char-rnn-tensorflow和Tensorflow RNN教程来构建我自己的最小字符级RNN .我的脚本似乎按预期工作,除非我尝试恢复/恢复培训.
如果我重新启动脚本并从检查点恢复然后恢复训练,则丢失将始终恢复,就像没有检查点一样(尽管权重已正确恢复).但是,在脚本执行期间,如果我重置图形,启动新会话并恢复,那么我可以按预期继续最小化损失.
我试图在我的桌面(使用GPU)和笔记本电脑(仅限CPU)上运行此操作,两者都在Windows上使用Tensorflow 0.12.
下面是我的代码,我在这里上传了代码+数据+控制台输出:https: //gist.github.com/dk1027/777c3da7ba1ff7739b5f5e89491bef73
import numpy as np
import tensorflow as tf
from tensorflow.python.ops import rnn_cell
class model_input:
def __init__(self,data_path, batch_size, steps):
self.batch_idx = 0
self.data_path = data_path
self.steps = steps
self.batch_size = batch_size
data = open(self.data_path).read()
data_size = len(data)
self.vocab = set(data)
self.vocab_size = len(self.vocab)
self.vocab_to_idx = {v:i for i,v in enumerate(self.vocab)}
self.idx_to_vocab = {i:v for i,v in enumerate(self.vocab)}
c = self.batch_size * self.steps
#Offset by …
Run Code Online (Sandbox Code Playgroud)