成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C#中怎么調(diào)用opencv函數(shù)-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)C#中怎么調(diào)用open cv函數(shù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

為隆子等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及隆子網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、隆子網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1.先是在程序中圖像的導(dǎo)入,我是根據(jù)圖像路徑實(shí)現(xiàn),其中path是string類型,是圖像路徑。

IntPtr img=CvInvoke.cvLoadImage(path, Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYCOLOR);

2.圖像灰度化處理,先創(chuàng)建一幅尺寸大小為為原圖的8位圖像GrayImg1:

Rectangle cr = CvInvoke.cvGetImageROI(img1);

                int width = cr.Width;

                int height = cr.Height;

IntPtr GrayImg1 = CvInvoke.cvCreateImage(cr.Size, Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_8U, 1);

現(xiàn)在就能使用cvCvtColor函數(shù)實(shí)現(xiàn)灰度化:

CvInvoke.cvCvtColor(img1, GrayImg1, Emgu.CV.CvEnum.COLOR_CONVERSION.CV_BGR2GRAY);

3.直方圖的創(chuàng)建,并獲取數(shù)據(jù)

int[] hist_size = new int[1] { 256 };//建一個(gè)數(shù)組來存放直方圖數(shù)據(jù)

IntPtr HistImg=CvInvoke.cvCreateHist(1, hist_size, Emgu.CV.CvEnum.HIST_TYPE.CV_HIST_ARRAY, null, 1);//創(chuàng)建了一個(gè)空的直方圖

CvInvoke.cvCalcHist(inPtr1, HistImg,false,System.IntPtr.Zero);//計(jì)算inPtr1指向圖像的數(shù)據(jù),并傳入Histimg中,其中IntPtr[] inPtr1 = new IntPtr[1] { SubImg}。

現(xiàn)在要獲取Histimg中的具體數(shù)據(jù):

for (int i = 0; i < 256; i++)

            {

                temphist[i] = CvInvoke.cvQueryHistValue_1D(histImg, i);

            }

這樣在數(shù)組temphist中保存了直方圖數(shù)據(jù)。

4.對(duì)第一步中由cvLoadImage導(dǎo)入的圖像進(jìn)行像素點(diǎn)的操作。由于img 是IntPtr類型無法直接進(jìn)行操作,所以首先要進(jìn)行格式的轉(zhuǎn)化,把IntPtr型轉(zhuǎn)換成MIplImage:

Emgu.CV.Structure.MIplImage MIpImg =

(Emgu.CV.Structure.MIplImage)System.Runtime.InteropServices.Marshal.PtrToStructure(img, typeof(Emgu.CV.Structure.MIplImage));

然后再C#中使用unsafe中指針操作:npixel = (int)((byte*)img.imageData + img.widthStep * i)[j];

5.在二值話的圖像,對(duì)不為零的區(qū)域經(jīng)行檢測(cè)。

IntPtr Dyncontour = new IntPtr();//存放檢測(cè)到的圖像塊的首地址

IntPtr Dynstorage = CvInvoke.cvCreateMemStorage(0);開辟內(nèi)存區(qū)域

int n= CvInvoke.cvFindContours(tempimg, Dynstorage, ref Dyncontour, StructSize.MCvContour, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_CCOMP,Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, new Point(0, 0));

n表示檢測(cè)到不為零區(qū)域的個(gè)數(shù)。

6.對(duì)第五步檢測(cè)到的區(qū)域繪制輪廓

for(;DyncontourTemp!=null&&DyncontourTemp.Ptr.ToInt32()!=0;DyncontourTemp=DyncontourTemp.HNext)

{

CvInvoke.cvDrawContours(tempContImg, DyncontourTemp,new MCvScalar(255, 255, 255),new MCvScalar(255, 255, 255), 0, 1, Emgu.CV.CvEnum.LINE_TYPE.EIGHT_CONNECTED, new Point(0, 0));

 }

其中的DyncontourTemp為

Seq<Point> DyncontourTemp1= new Seq<Point>(Dyncontour, null);//方便對(duì)IntPtr類型進(jìn)行操作

Seq<Point> DyncontourTemp=DyncontourTemp1;

7.對(duì)第五步檢測(cè)出的區(qū)域的坐標(biāo)提取,通過cvFindContours函數(shù)的調(diào)用在 Dyncontour中存放的是不為零區(qū)域坐標(biāo)的值存儲(chǔ)在內(nèi)存中的首地址指針。

seq<Point> DyncontourTemp1= new Seq<Point>(Dyncontour, null); //方便對(duì)IntPtr類型進(jìn)行操作

int total=contourImg.Total;//contourImg包含的元素的總數(shù)

 int TempX = 0;  int TempY = 0;int[,] contourArray = new int[2,total];

 //獲得輪廓的坐標(biāo)值

 for (int i = 0; i < total;i++ )

{

  contourArray[0,i]=contourImg[i].X;

  contourArray[1,i]=contourImg[i].Y;

 }

看完上述內(nèi)容,你們對(duì)C#中怎么調(diào)用open cv函數(shù)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

新聞名稱:C#中怎么調(diào)用opencv函數(shù)-創(chuàng)新互聯(lián)
鏈接地址:http://jinyejixie.com/article46/coieeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、關(guān)鍵詞優(yōu)化、定制開發(fā)、網(wǎng)頁設(shè)計(jì)公司、面包屑導(dǎo)航、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
咸宁市| 西贡区| 江都市| 勐海县| 北川| 库尔勒市| 无极县| 柳林县| 孙吴县| 孙吴县| 祁连县| 舒城县| 江孜县| 高要市| 东乡| 临清市| 民乐县| 虎林市| 洱源县| 汾西县| 高安市| 封开县| 大英县| 紫阳县| 西乌| 布尔津县| 余姚市| 东山县| 阿拉善左旗| 霍城县| 晋宁县| 南充市| 宜兴市| 河曲县| 平定县| 和静县| 监利县| 诸暨市| 碌曲县| 寿宁县| 昂仁县|