OpenCV错误:断言失败(!fixedSize()||((Mat *)obj) - > size.operator()()==尺寸(cols,rows))在create中,

时间:2016-11-03 15:06:50

标签: c++ multithreading opencv

我使用我的函数定义为:

的线程获得此运行时错误
(define-generic-mode 'diary-generic-mode
  '(?#)
  nil ;; keywords
  '(("^&.*$" (0 font-lock-comment-face))
    ("^&?\\(%%(diary-[a-z]+[^)]*)\\)" (1 font-lock-type-face t))
    ("^&?[ \t\n]*\\(\\([0-9*]+/[0-9*]+\\(/[0-9*]+\\)?\\|\\(Jan\\(uary\\)?\\|Feb\\(ruary\\)?\\|Mar\\(ch\\)?\\|Apr\\(il\\)?\\|May\\|June?\\|July?\\|Aug\\(ust\\)?\\|Sep\\(tember\\)?\\|Oct\\(ober\\)?\\|Nov\\(ember\\)?\\|Dec\\(ember\\)?\\|\\*\\)\\.?\\s-*[0-3]?[0-9]\\|\\(\\(Mon\\|Tues?\\|Wed\\(nes\\)?\\|Thu\\(rs\\)?\\|Fri\\|Sat\\(ur\\)?\\|Sun\\)\\(day\\)?\\)\\(\\s-[0-9]+\\)?\\)\\(,\\s-+\\(19\\|20\\)[0-9][0-9]\\)?\\s.?\\)" (1 font-lock-type-face t))
    ("^&?\\s-*\\([0-3]?[0-9]\\s-+\\(Jan\\(uary\\)?\\|Feb\\(ruary\\)?\\|Mar\\(ch\\)?\\|Apr\\(il\\)?\\|May\\|June?\\|July?\\|Aug\\(ust\\)?\\|Sep\\(tember\\)?\\|Oct\\(ober\\)?\\|Nov\\(ember\\)?\\|Dec\\(ember\\)?\\)\\s-+[0-9]+\\)" (1 font-lock-type-face t))
    ("[0-2]?[0-9]:[0-9][0-9]\\(am\\|pm\\)?\\>\\s.?" (0 font-lock-keyword-face t))) ;; font-lock
  '("/diary") ;; auto-mode
  '(diary-mode-setup) ;; function
  "Mode for diary file.")

(defun diary-mode-setup nil
  (set (make-local-variable 'align-rules-list)
       '((date (regexp . "^&?\\([1-3]?[0-9]\\)\\(\\s-+\\)\\(+Jan\\|Feb\\|Ma[ry]\\|Apr\\|Ju[nl]\\|Aug\\|Sep\\|Oct\\|Nov\\|Dec\\)\\(\\s-+\\)[12][90-4][0-9][0-9]")
               (group 2 4)
               (justify . t))
         (block (regexp . "^&?%%(diary-block\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\))")
           (group 1 2 3 4 5 6)
           (justify . t))
         (cyclic (regexp . "^&?%%(diary-cyclic\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\)\\(\\s-+[0-9]+\\))")
           (group 1 2 3 4)
           (justify . t))))
  (set (make-local-variable 'require-final-newline) t)
  (set (make-local-variable 'version-control) 'never))

这是一个使用双阈值分割图像的函数,其中InputArray和OutputArray是OpenCV类。

这是创建线程对象的代码部分:

void doubleThresholding(InputArray imgin, OutputArray imgout, uchar T1,
                        uchar T2, InputArray mask)

我尝试在rgb [0],nusegmB和cytosegm上使用std :: ref()但不编译。我收到此消息错误:

Mat nusegmB;   
thread t1(doubleThresholding,rgb[0],nusegmB,55,60,cytosegm);
t1.join();

如果我不使用线程,我没有任何问题。

0 个答案:

没有答案