<form id="hv991"><form id="hv991"><nobr id="hv991"></nobr></form></form>

      <sub id="hv991"><nobr id="hv991"><meter id="hv991"></meter></nobr></sub>

            <form id="hv991"></form>

            <address id="hv991"><nobr id="hv991"><nobr id="hv991"></nobr></nobr></address>
            <form id="hv991"></form>
             yyzn  2022-04-08 05:07:30  深度學習 |   查看評論   

            由于有些輸出的圖像與輸入圖像相比,大小深度和通道數目都不一樣,所以不能使用輸出圖像覆蓋輸入圖像的方法。有幾個封裝好的函數在這方面很有用,它們包含了為輸出圖像分配內存的工作,也同時包含了圖像處理等變換。 首先對原RGB圖像進行灰度處理。 然后利用cvPyrDown()創建一幅高度寬帶均為輸入圖像一半尺寸的圖像。 最后利用Canny邊緣檢測輸出一個單通道(灰度級)圖像。 環境:WIN7 32bits+VS2010+OpenCV2.2.0 代碼如下:#include stdafx.h#include cv.h#include <cxcore.h>#include <highgui.h>//第一個函數:縮放處理函數 IplImage*doPyrDown(IplImage*in,int filter=IPL_GAUSSIAN_5x5){ assert(in->width%2==0 && in->height%2==0);//確認長寬像素是偶數(否則無法縮放一半) IplImage* out=cvCreateImage( cvSize(in->width/2,in->height/2), in->depth, in->nChannels );//創建新圖像,長寬各一半,同深度,同通道數 cvPyrDown(in,out); return(out); };//第二個函數:Canny邊緣檢測IplImage* doCanny(IplImage* in,double lowThresh,double highThresh,double aperture){ if(in->nChannels!=1) return(0);//Canny只能處理灰度圖 IplImage* out = cvCreateImage( cvGetSize( in ), in->depth, //IPL_DEPTH_8U, 1); cvCanny( in, out, lowThresh, highThresh, aperture ); //函數的第二及第三個參數為兩個閾值。小閾值用來控制邊緣連接,大的閾值用來控制強邊緣的初始分割 return( out );};int main( int argc, char** argv ){cvNamedWindow(Example RGB, CV_WINDOW_AUTOSIZE ); cvNamedWindow(Example Gray, CV_WINDOW_AUTOSIZE ); cvNamedWindow(Example Pyr, CV_WINDOW_AUTOSIZE ); cvNamedWindow(Example Canny, CV_WINDOW_AUTOSIZE );IplImage* img_rgb = cvLoadImage(cube.jpg);//載入原RBG圖 IplImage* out;cvShowImage(Example RGB,img_rgb );//顯示原RBG圖out = cvCreateImage( cvSize( img_rgb->width,img_rgb->height ), img_rgb->depth, 1); cvCvtColor(img_rgb, out ,CV_BGR2GRAY);//把載入圖像轉換為灰度圖 cvShowImage(Example Gray, out );//顯示灰度圖out = doPyrDown( out ); out = doPyrDown( out );//執行兩次縮小處理 cvShowImage(Example Pyr, out );//顯示縮小圖out = doCanny( out, 10, 100, 3 );//進行Canny邊緣檢測 cvShowImage(Example Canny, out );//顯示canny邊緣檢測圖cvWaitKey(0);cvReleaseImage( &out);//通過每個獨立獨立階段處理圖像,簡化了流程cvDestroyWindow(Example Gray);cvDestroyWindow(Example Pyr);cvDestroyWindow(Example Canny);}

            打印cv_version,這個字符串即可。常用的opencv函數速查1、cvloadimage:將圖像文件加載至內存;2、cvnamedwindow:在屏幕上創建一個窗口;3、cvshowimage:在一個已創建好的窗口中顯示圖像;

             

            除特別注明外,本站所有文章均為 人工智能學習網 原創,轉載請注明出處來自OpenCV圖像處理 尺寸縮放函數dopyrdown

            留言與評論(共有 0 條評論)
               
            驗證碼:
            [lianlun]1[/lianlun] 小男稚嫩的小身子白嫩呻吟

                <form id="hv991"><form id="hv991"><nobr id="hv991"></nobr></form></form>

                <sub id="hv991"><nobr id="hv991"><meter id="hv991"></meter></nobr></sub>

                      <form id="hv991"></form>

                      <address id="hv991"><nobr id="hv991"><nobr id="hv991"></nobr></nobr></address>
                      <form id="hv991"></form>