def setImage(self, image): """ 设置要处理的图片 :param image: 是cv2读进来的图片对象 """ image = ImageTool.preProcessImage(image) super(GasmeterStyle0, self).setImage(image)
def getLCDAreaData(image): """ 获取 LCD 区域图片数据 :param image: cv2 读进来的图片对象 """ image = ImageTool.preProcessImage(image) blackMask = MaskTool.getBlackMaskBGR() image = blackMask.getInterestImageAreaData(image) shape = image.shape grayImage = ImageTool.convertImgBGR2Gray(image) mid = int(shape[0] / 2) splitImageBox = (0, mid, shape[1], shape[0]) splitImageGray = ImageTool.getCropImageByBox(grayImage, splitImageBox) splitImage = ImageTool.getCropImageByBox(image, splitImageBox) # 显示剪切的 lcd 屏所在的下半屏灰度图 ImageTool.showImagePIL(splitImageGray, "splitImageGray") retval, otsuImage = ImageTool.getOTSUGrayImage(splitImageGray) otsuImage = ImageTool.convertImgGray2BGR(otsuImage) lower = (250, 250, 250) upper = (255, 255, 255) lcdBoxCorner = ImageTool.getInterestBoxCornerPointByColor( otsuImage, lower, upper) lcdBox = LCDLightDetect.getMinBox(lcdBoxCorner) # ImageTool.showBoxInImageByBox(splitImage, lcdBox) lcdImage = ImageTool.getCropImageByBox(splitImage, lcdBox) return lcdImage
def setImage(self, image): """ 设置要处理的图片 :param image: 是cv2读进来的图片对象 提取表头黑色背景区域图片保存到 self._image 域中,方便以后提取条形码、液晶屏、黑底白字滚轮区域数字 """ if image is None: raise ValueError("image is None") image = ImageTool.preProcessImage(image) # ImageTool.showImagePIL(image) super(GasmeterStyle1, self).setImage(image) blackMask = MaskTool.getBlackMaskBGR() self._image = blackMask.getInterestImageAreaData(self._image) self._grayImage = ImageTool.convertImgBGR2Gray(self._image)