簡體   English   中英

OpenCV python層不適用於caffe / digits框架

[英]OpenCV python layer is not working with caffe/digits framework

我制作了以下python層,並將其添加到LeNet架構中。 但是在構建模型時會出現錯誤。 我要使用Numpy應用我的Python層,但是當我使用OpenCV時會出現錯誤。 接下來,我從日志文件添加我的代碼和相應的錯誤。

import cv2
import caffe
import random

def doEqualizeHist(img): img = img.astype(np.uint8) img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) return cv2.equalizeHist(img)

class EqualizeLayer(caffe.Layer): def setup(self, bottom, top): assert len(bottom) == 1, 'requires a single layer.bottom' assert bottom[0].data.ndim >= 3, 'requires image data' assert len(top) == 1, 'requires a single layer.top'

def reshape(self, bottom, top): # Copy shape from bottom top[0].reshape(*bottom[0].data.shape) def forward(self, bottom, top): # Copy all of the data top[0].data[...] = bottom[0].data[...] for ii in xrange(0, top[0].data.shape[0]): imin = top[0].data[ii, :, :, :].transpose(1, 2, 0) top[0].data[ii, :, :, :] = doEqualizeHist(imin).transpose(2, 0, 1) def backward(self, top, propagate_down, bottom): pass

錯誤消息:0812 06:41:53.452097 14355 net.cpp:723]忽略源層訓練數據OpenCV錯誤:cvtColor文件/ build / opencv-SviWsf /中的斷言失敗(scn == 3 || scn == 4) opencv-2.4.9.1 + dfsg / modules / imgproc / src / color.cpp,第3737行回溯(最近一次調用最近):文件“ /var/lib/digits/jobs/20170812-064148-f44d/digits_python_layers.py”,第27行,位於前上方[0] .data [ii,:,:::] = doEqualizeHist(imin).transpose(2,0,1)文件“ / var / lib / digits / jobs / 20170812-064148-f44d /digits_python_layers.py“,第8行,位於doEqualizeHist img = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)cv2.error:/build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/imgproc/src/color。 cpp:3737:錯誤:(-215)scn == 3 || scn == 4在函數cvtColor中

供將來參考,OpenCV中出現“斷言失敗”錯誤消息,表示您已將無效數據傳遞給函數。 在這種情況下,失敗的斷言是scn == 3 || scn == 4 scn == 3 || scn == 4 要確切地知道這意味着什么,您可以查看斷言失敗的源文件: modules/impgproc/src/color.cpp並檢查發生該問題的函數: cvtColor在第3737行。查看變量scn代表什么。

就您而言,問題在於您正在將img轉換為單通道格式,然后嘗試將其從RGB轉換為灰度。 該轉換首先聲明輸入是3通道或4通道格式。 並不是這樣,斷言失敗了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM