小編這次要給大家分享的是用代碼解析MFC和OpenCV如何實(shí)現(xiàn)角點(diǎn)檢測(cè),文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供崗巴企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為崗巴眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。// 角點(diǎn)檢測(cè) // 根據(jù)《基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)》 #define max_corners 200; // 限定的大角點(diǎn)數(shù) IplImage* srcImage = 0; // 待處理的源圖像 IplImage* ImageShow = 0; // 存儲(chǔ)顯示帶角點(diǎn)的圖像 IplImage* grayImage = 0; // 原始圖像轉(zhuǎn)換成的灰階圖像 IplImage* corners1 = 0; // 臨時(shí)圖像 IplImage* corners2 = 0; // 臨時(shí)圖像 int cornerCount0 = max_corners; int cornerCount; // 實(shí)際測(cè)得角點(diǎn)數(shù) int qualityLevel = 0; // 最小質(zhì)量因子 int minDistance = 15; // 角點(diǎn)最小距離 CvScalar color = CV_RGB(255,0,0); // 繪圖顏色 CvPoint2D32f corners[200]; // 角點(diǎn)坐標(biāo) CvRect ROI_rect; // 測(cè)試范圍 char chek_area_state = 0; // 鼠標(biāo)狀態(tài) void re_find_corners(int) // 滑動(dòng)條響應(yīng)函數(shù) { int i,x,y,xl,yu,xr,yd,k; int radius = 5; int thickness = 1; double quality_level = (double) qualityLevel / 100 + 0.02; double min_distance = (double) minDistance; cornerCount=cornerCount0; // 設(shè)置大角點(diǎn)數(shù) cvGoodFeaturesToTrack(grayImage, // 角點(diǎn)檢測(cè) corners1,corners2,corners,&cornerCount, quality_level,min_distance,NULL); if (cornerCount>0) { // 測(cè)到角點(diǎn) xl=ROI_rect.x; yu=ROI_rect.y; // 設(shè)置初始測(cè)試范圍 xr=ROI_rect.x+ROI_rect.width; yd=ROI_rect.y+ROI_rect.height; cvCopy(srcImage,ImageShow); // 恢復(fù)源圖像 for (i=0,k=0;inChannels>1) { // 原圖為真彩色圖像==3 srcImage = cvCloneImage(workImg); } else { // 原圖為灰階圖像 srcImage = cvCreateImage(cvGetSize(workImg),IPL_DEPTH_8U,3); cvCvtColor(workImg,srcImage,CV_GRAY2BGR); } cvFlip(srcImage); grayImage = cvCreateImage(cvGetSize(srcImage),IPL_DEPTH_8U,1); cvCvtColor(srcImage,grayImage,CV_BGR2GRAY); // 轉(zhuǎn)換為灰階圖像 ImageShow = cvCloneImage(srcImage); ROI_rect.x =0; ROI_rect.y =0; ROI_rect.width = grayImage->width; ROI_rect.height = grayImage->height; corners1 = cvCreateImage(cvGetSize(grayImage),IPL_DEPTH_32F,1); corners2 = cvCreateImage(cvGetSize(grayImage),IPL_DEPTH_32F,1); cvNamedWindow("image",0); // 設(shè)置顯示窗口 cvResizeWindow("image",325,350); // 改變窗口尺寸 cvCreateTrackbar("角點(diǎn)最小距離", "image", // 設(shè)置距離滑動(dòng)條 &minDistance, 200,re_find_corners); cvCreateTrackbar("最小質(zhì)量因子","image", // 設(shè)置質(zhì)量滑動(dòng)條 &qualityLevel,100,re_find_corners); re_find_corners(0); // 角點(diǎn)檢測(cè) cvSetMouseCallback("image",on_mouse2,0); // 設(shè)置鼠標(biāo)響應(yīng)函數(shù) cvWaitKey(0); // 等待鍵輸入 cvDestroyWindow( "image" ); // 關(guān)閉窗口 cvReleaseImage(&srcImage); // 釋放圖像存儲(chǔ)單元 cvReleaseImage(&grayImage); cvReleaseImage(&corners1); cvReleaseImage(&corners2); cvFlip(ImageShow); m_dibFlag=imageReplace(ImageShow,&workImg); // 輸出檢測(cè)結(jié)果 m_ImageType=-2; Invalidate(); }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。