1. 程式人生 > >OpenCV中的結構元素IplConvKernel及操作

OpenCV中的結構元素IplConvKernel及操作

在OpenCV中,定義了一個結構用於描述形態學中的結構元素。該結構定義如下:

typedef struct _IplConvKernel

{

    int  nCols;

    int  nRows;

    int  anchorX;

    int  anchorY;

    int *values;

    int  nShiftR;

}

IplConvKernel;

在這裡,對其中的變數定義做一簡單的描述:

nCols,nRows:結構元素的行寬與列高;

anchorX,anchorY:結構元素原點(錨點)的位置座標,水平,垂直;

nShiftR:用於表示結構元素的形狀型別,有如下幾個值:

#define  CV_SHAPE_RECT      0

#define  CV_SHAPE_CROSS     1

#define  CV_SHAPE_ELLIPSE   2

#define  CV_SHAPE_CUSTOM    100

分別表示矩形,十字,橢圓和自定義。

values:當nShiftR為自定義時,value是指向結構元素資料的指標,如果結構元素的大小定義為8*6,那麼values為48長的int陣列,值為0或1。

在OpenCV中定義了兩個關於結構元素IplConvKernel的操作,用於結構元素的建立和釋放。

cvCreateStructuringElementEx
      建立結構元素 
      IplConvKernel* cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y,
                                                                                 int shape, int* values=NULL );
      cols  結構元素的列數目
      rows 結構元素的行數目
      anchor_x 錨點的相對水平偏移量
      anchor_y  錨點的相對垂直偏移量
      shape 結構元素的形狀,可以是下列值:
      CV_SHAPE_RECT, 長方形元素;
      CV_SHAPE_CROSS, 交錯元素 a cross-shaped element;
      CV_SHAPE_ELLIPSE, 橢圓元素;
      CV_SHAPE_CUSTOM, 使用者自定義元素。這種情況下引數 values 定義了 mask,即象素的那個鄰域必須考慮。
      values    指向結構元素的指標,它是一個平面陣列,表示對元素矩陣逐行掃描。(非零點表示該點屬於結構元)。如果指標為空,則表示平面陣列中的所有元素都是非零的,即結構元是一個長方形(該引數僅僅當shape引數是 CV_SHAPE_CUSTOM 時才予以考慮)。 
      函式 cv CreateStructuringElementEx 分配和填充結構 IplConvKernel, 它可作為形態操作中的結構元素。

cvReleaseStructuringElement   刪除結構元素
      void cvReleaseStructuringElement( IplConvKernel** element );
      element  被刪除的結構元素的指標
      函式 cvReleaseStructuringElement 釋放結構 IplConvKernel 。如果 *element 為 NULL, 則函式不作用。

其他結構元素的擴充套件操作參見:

相關推薦

OpenCV結構元素IplConvKernel操作

在OpenCV中,定義了一個結構用於描述形態學中的結構元素。該結構定義如下: typedef struct _IplConvKernel {     int  nCols;     int  nRows;     int  anchorX;     int  anchorY;

為什麼在foreach迴圈進行元素remove/add操作,會拋ConcurrentModificationException 異常?

執行以下程式碼: @Test public void test() { List<String> list = new ArrayList<>(); list.add("A"); list.add("B");

Hibernate一對多配置操作

表的一對多對映配置 以客戶和聯絡人表為例子:客戶是一,聯絡人是多 1、建立實體類,客戶和聯絡人 2、讓兩個實體類之間互相表示 (1)在客戶實體類中要表示多個聯絡人 - 一個客戶有多個聯絡人 //在客戶實體類裡面表示多個聯絡人,一個客戶有多個聯絡人 //hibern

陣列指定元素的刪除操作——Java

class Solution { public int removeElement(int[] nums, int val) { int number=0,exchangNumber=0; for(int i=nums

python:zip函式,對列表元素進行函式操作

python程式碼 a = [[123, 456, 789, 123],[124, 455, 788, 124]] width = map(lambda x:x[1] - x[3], a) # 求a中各個元素中,第2和第4的差值 list(width) 總結 pyth

Ubuntu16 下 OpenCV 的一些報錯操作

一、檢視當前Opencv版本 在終端輸入下面的命令,即可檢視opencv版本 pkg-config --modversion opencv   二、特徵提取器與描述子提取 宣告(opencv2.x 版本與 opencv3.x對比) 當需要呼叫opencv庫中的特徵提

Opencv新增進度條回撥函式

#include  "highgui.h"#include  "iostream"using namespace std;using namespace cv;VideoCapture video1("Seq04.avi");                                        in

selenium_頁面元素定位操作

【基本步驟】 1:開啟瀏覽器; 2:開啟網頁; 3:定位元素及操作; 【元素定位是自動化測試核心部分】 元素名稱 webdriver API id find_ele

Appium-Python各種元素定位操作方法解析

元素定位方法 # /site-packages/selenium/webdriver/remote/webdriver.py 通過id定位元素 12 find_element_by_id(self, id_) # Usage: driver.find_e

數字影象處理結構元素、腐蝕、膨脹的基本概念。(轉+源)

重建操作        重建操作分為很多種,包括重建開操作、重建頂帽操作等。其根本原理是通過腐蝕找到SE的模式,然後迭代膨脹或者迭代頂帽操作直到影象收斂。 程式碼 #include <cv.h>#include <highgui.h>#include <stdio.

CentOsnginx的安裝操作

       博主使用的系統是centos6.x和Centos7.0,所以跟其他的系統比如說ubuntu系統有一定的差別,如果有不對的地方,歡迎指正。 Nginx的官網是http://nginx.org/,開啟後可以看到nginx的各個版本,包括版本號,版本型別,更新時間以

jquery幾種頁面元素定位操作的方法

jQuery提供兩種方式來選擇html的elements,第一種是用CSS和Xpath選擇器聯合起來形成一個字串來傳送到jQuery的構造器(如:$("div > ul a"));第二種是用jQuery物件的幾個methods(方法)。這兩種方式還可以聯合起來混合使用。我們來試著在我們的test.htm

tabletd元素,不可操作、不可編輯、獲取不到焦點、不能被選中

在要讓文字不能被選中的TD內加入onselectstart="return false" onselect="document.selection.empty()"<table><t

OpencvMat結構元素的獲取與賦值

【OpenCV3影象處理】Mat中元素的獲取與賦值 ( 對比.at<>()函式 和 .ptr<>()函式) 2017年04月12日 10:08:55 閱讀數:7542 標籤: opencvopencv3 更多 個人分類:&nbs

jquery 獲取操作元素 (常用)

.com pre img htm color hello fun 文檔 wid jquery 獲取元素 參考:http://www.w3school.com.cn/jquery/jquery_selectors.asp 1.(1)$(document).ready()

內置數據結構 :列表常用操作

xtend 也會 count insert 返回 所在 .so 數據 start 列表是一個序列:用於順序的存儲數據, 通常在定義的時候,使用中括號,在轉化可叠代對象為列表時用list 函數 1,訪問列表元素: List[0] 通過下標訪問

OpenCV3種乘法操作的理解掌握

alt 函數 opencv 如果 csdn tle 基本操作 art sca 參考了《Opencv中Mat矩陣相乘——點乘、dot、mul運算詳解 》“http://blog.csdn.net/dcrmg/article/details/52404580”的相關內容。乘法是

Java對數組的操作(三)—比較兩個數組元素是否同樣的最簡單方法

con data println test popu pan equal main spa 呵呵呵,實現Java比較兩個數組中的元素是否同樣的功能你是怎麽做的?看以下最簡單方法: import java.util.Arrays;

操作Frame和IFrame頁面元素

如果 ebe 普通 ros def 當前 包含 div 內聯 HTML <iframe> 標簽 定義:iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。 frame標簽有frameset、frame、iframe三種,frameset跟其他普通

線性表的順序存儲結構元素的獲取,插入刪除

數據結構 線性表 順序存儲結構 對於線性表,我們可以對其元素進行簡單的獲取,插入以及刪除操作。 先來講講元素的獲取操作,完整來講,就是對,將線性表L第i個位置的元素返回,若成功,則返回1,且將第i個位置的元素的值賦給*e;若失敗,則返回0。代碼如下:int GetEl