相关文章推荐
空虚的南瓜  ·  请用python ...·  11 小时前    · 
低调的机器猫  ·  AMQ6047: Conversion ...·  9 小时前    · 
空虚的显示器  ·  module 'cv2' has no ...·  3 小时前    · 
销魂的小熊猫  ·  matlab colorbar ...·  1 年前    · 
潇洒的野马  ·  CheckBox ...·  1 年前    · 
def Work_thread(self):
        # ch:创建显示的窗口 | en:Create the window for display
        cv2.namedWindow(str(self.n_win_gui_id),0)
        cv2.resizeWindow(str(self.n_win_gui_id), 500, 500)
        stFrameInfo = MV_FRAME_OUT_INFO_EX()  
        img_buff = None
        while True:
            ret = self.obj_cam.MV_CC_GetOneFrameTimeout(byref(self.buf_cache), self.n_payload_size, stFrameInfo, 1000)
            if ret == 0:
                #获取到图像的时间开始节点获取到图像的时间开始节点
                self.st_frame_info = stFrameInfo
                print ("get one frame: Width[%d], Height[%d], nFrameNum[%d]"  % (self.st_frame_info.nWidth, self.st_frame_info.nHeight, self.st_frame_info.nFrameNum))
                self.n_save_image_size = self.st_frame_info.nWidth * self.st_frame_info.nHeight * 3 + 2048
                if img_buff is None:
                    img_buff = (c_ubyte * self.n_save_image_size)()
                if True == self.b_save_jpg:
                    self.Save_jpg() #ch:保存Jpg图片 | en:Save Jpg
                if self.buf_save_image is None:
                    self.buf_save_image = (c_ubyte * self.n_save_image_size)()
                stParam = MV_SAVE_IMAGE_PARAM_EX()
                stParam.enImageType = MV_Image_Bmp;                                        # ch:需要保存的图像类型 | en:Image format to save
                stParam.enPixelType = self.st_frame_info.enPixelType                               # ch:相机对应的像素格式 | en:Camera pixel type
                stParam.nWidth      = self.st_frame_info.nWidth                                    # ch:相机对应的宽 | en:Width
                stParam.nHeight     = self.st_frame_info.nHeight                                   # ch:相机对应的高 | en:Height
                stParam.nDataLen    = self.st_frame_info.nFrameLen
                stParam.pData       = cast(self.buf_cache, POINTER(c_ubyte))
                stParam.pImageBuffer =  cast(byref(self.buf_save_image), POINTER(c_ubyte)) 
                stParam.nBufferSize = self.n_save_image_size                                 # ch:存储节点的大小 | en:Buffer node size
                stParam.nJpgQuality     = 80;                                                # ch:jpg编码,仅在保存Jpg图像时有效。保存BMP时SDK内忽略该参数
                if True == self.b_save_bmp:
                    self.Save_Bmp() #ch:保存Bmp图片 | en:Save Bmp
            else:
                continue
            #转换像素结构体赋值
            stConvertParam = MV_CC_PIXEL_CONVERT_PARAM()
            memset(byref(stConvertParam), 0, sizeof(stConvertParam))
            stConvertParam.nWidth = self.st_frame_info.nWidth
            stConvertParam.nHeight = self.st_frame_info.nHeight
            stConvertParam.pSrcData = self.buf_cache
            stConvertParam.nSrcDataLen = self.st_frame_info.nFrameLen
            stConvertParam.enSrcPixelType = self.st_frame_info.enPixelType 
            # Mono8直接显示
            if PixelType_Gvsp_Mono8 == self.st_frame_info.enPixelType:
                numArray = CameraOperation.Mono_numpy(self,self.buf_cache,self.st_frame_info.nWidth,self.st_frame_info.nHeight)
            # RGB直接显示
            elif PixelType_Gvsp_RGB8_Packed == self.st_frame_info.enPixelType:
                numArray = CameraOperation.Color_numpy(self,self.buf_cache,self.st_frame_info.nWidth,self.st_frame_info.nHeight)
            #如果是黑白且非Mono8则转为Mono8
            elif  True == self.Is_mono_data(self.st_frame_info.enPixelType):
                nConvertSize = self.st_frame_info.nWidth * self.st_frame_info.nHeight
                stConvertParam.enDstPixelType = PixelType_Gvsp_Mono8
                stConvertParam.pDstBuffer = (c_ubyte * nConvertSize)()
                stConvertParam.nDstBufferSize = nConvertSize
                ret = self.obj_cam.MV_CC_ConvertPixelType(stConvertParam)
                if ret != 0:
                    tkinter.messagebox.showerror('show error','convert pixel fail! ret = '+self.To_hex_str(ret))
                    continue
                cdll.msvcrt.memcpy(byref(img_buff), stConvertParam.pDstBuffer, nConvertSize)
                numArray = CameraOperation.Mono_numpy(self,img_buff,self.st_frame_info.nWidth,self.st_frame_info.nHeight)
            #如果是彩色且非RGB则转为RGB后显示
            elif  True == self.Is_color_data(self.st_frame_info.enPixelType):
                nConvertSize = self.st_frame_info.nWidth * self.st_frame_info.nHeight * 3
                stConvertParam.enDstPixelType = PixelType_Gvsp_RGB8_Packed
                stConvertParam.pDstBuffer = (c_ubyte * nConvertSize)()
                stConvertParam.nDstBufferSize = nConvertSize
                ret = self.obj_cam.MV_CC_ConvertPixelType(stConvertParam)
                if ret != 0:
                    tkinter.messagebox.showerror('show error','convert pixel fail! ret = '+self.To_hex_str(ret))
                    continue
                cdll.msvcrt.memcpy(byref(img_buff), stConvertParam.pDstBuffer, nConvertSize)
                numArray = CameraOperation.Color_numpy(self,img_buff,self.st_frame_info.nWidth,self.st_frame_info.nHeight)
            cv2.resizeWindow(str(self.n_win_gui_id), 500, 500) 
            cv2.imshow(str(self.n_win_gui_id),numArray)
            cv2.waitKey(1)
            if self.b_exit == True:
                cv2.destroyAllWindows()
                if img_buff is not None:
                    del img_buff
                if self.buf_cache is not None:
                    del buf_cache
                break
def Work_thread(self): # ch:创建显示的窗口 | en:Create the window for display cv2.namedWindow(str(self.n_win_gui_id),0) cv2.resizeWindow(str(self.n_win_gui_id), 500, 500) stFrameInfo = MV_FRAME_OUT_INFO_EX() img_buff = N.
opencv 3是开源的机器学习平台,以跨平台、 高效率 为特点,为 计算机视觉 处理 提供了强大的支持,与多个编程工具连接,可以方便开发人员使用其图片操作功能,编辑代码更有效率。 OpenCV 是开源的,并根据BSD 3条款许可发布。它是免费的商业用途。 C ++, python 和java接口支持Linux,MacOS,Windows,iOS和Android。 OpenCV 是一个高度优化的库,专注于实时应用程序。 应用领域: 1、人机互动 2、物体识别 3、运动分析 4、机器视觉 5、结构分析 6、汽车安全驾驶 7、 图像 分割 8、人脸识别 9、动作识别 10、运动跟踪 11、机器人
sanpera是用于 Python 的映像库,旨在通过毫不奇怪和一致的API公开很多功能。 目标是为 图像 处理 做请求对HTTP所做的事情。 这是一项艰巨的工作,但确实可以做一些有用的事情。 如果它对您有用,请随时旋转一下,并为丢失或损坏的任何事物提交票证! GitHub页面 sanpera几乎全部用Cython编写,因为嘿,为什么不呢。 它由提供支持,但是它不是一个简单的包装器;它只是一个简单的包装器。 ImageMagick仅仅是实现细节。 公开ImageMagick可以做的所有事情,并尽可能地平滑其特质。 具有简单明显的行为。 合理地快速紧凑。 使用C Python 和PyPy。 互操作性(如果有用):numpy,Cairo等 表现得像ImageMagick。 使用Iron Python 或Jython。 与C一样快或内存效率高。