【发布时间】:2019-11-22 13:00:06
【问题描述】:
我正在尝试对上传的图像应用预处理。
但图像不是用opencv读取的,所有预处理都没有应用。
PyQt5 - 主窗口:
fname = QFileDialog.getOpenFileName(self, 'Open file', 'c:\\', "Image files (*.jpg *.gif *.png)")
imagePath = fname[0]
extractedText=imageToText.getImage(imagePath)
----另一个图像类--------
def getImage(string):
img= cv2.imread(string)
finalImage = pre_processing(img)
extractedText = "anything"
return extractedText
def pre_processing(img):
resized = img
if (img.shape[1] > 500) and (img.shape[0] > 500): #error (no shape)
resized = cv2.resize(img,None, fx=0.8,fy=0.8, interpolation = cv2.INTER_CUBIC)
gray = cv2.cvtColor(resized, cv2.COLOR_BGR2GRAY) # error in cvtcolor
th_val, th_img = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
blur = cv2.GaussianBlur(th_img, (3, 3), 0)
return blur
是路径的问题吗?或者文件类型与opencv不兼容? 在我使用 cv2.imread('test.jpg') 之前 但是现在使用“QFileDialog.getOpenFileName”没有任何效果 来自(imagePath)的问题
错误:
OpenCV(3.4.2)
c:\miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\imgproc\src\color.hpp:253:
error: (-215:Assertion failed)
VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth)
in function 'cv::CvtHelper<struct cv::Set<3,4,-1>,struct cv::Set<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper'
【问题讨论】:
-
你看过什么样的图片?
print(imagePath)的输出是什么? -
这是其中之一,在我应用 PyQt 之前,代码运行良好,我使用的是 cv2.imread('test.jpg') ,但现在使用 "QFileDialog.getOpenFileName" 并非一切正常,我认为它的问题@eyllanesc
-
imagePath 的输出:C:/Users/Desktop/lab/test.jpg @eyllanesc
-
如果你直接使用
cv2.imread('C:/Users/Desktop/lab/test.jpg')路由,只去掉QFileDialog,你有同样的问题吗? PyQt4 还是 PyQt5? -
不,我现在尝试 cv2.imread('C:/Users/Desktop/lab/test.jpg') 没有错误@eyllanesc - PyQT5
标签: python opencv pyqt anaconda