看板 Programming 關於我們 聯絡資訊
※ [本文轉錄自 C_and_CPP 看板] 作者: freestylelin (妹妹) 看板: C_and_CPP 標題: [問題] 關於OpenCV 時間: Thu Mar 13 18:16:49 2008 最近由於專題老師教我寫關於視訊監控的程式 小弟是OpenCV 的新手 下面是我練習圖形轉灰階的程式碼 遊請各位高手幫我解釋紅色區域所執行的到底是什麼? / GrayLevel.cpp : 定義主控台應用程式的進入點。 // #include "stdafx.h" #include <cv.h> #include <highgui.h> #include <stdio.h> void GraylevelImage(IplImage* Image) { int i,j,r,g,b,h,w,gray; h=Image->height; w=Image->width; for(i=0;i<h;i++) { for(j=0;j<w;j++) { r=((uchar*)(Image->imageData + Image->widthStep * i))[j*3+2]; g=((uchar*)(Image->imageData + Image->widthStep * i))[j*3+1]; b=((uchar*)(Image->imageData + Image->widthStep * i))[j*3+0]; gray=(r*76+g*150+b*29)>>8; ((uchar*)(Image->imageData + Image->widthStep * i))[j*3+2]=gray; ((uchar*)(Image->imageData + Image->widthStep * i))[j*3+1]=gray; ((uchar*)(Image->imageData + Image->widthStep * i))[j*3+0]=gray; } } return; } int main() { IplImage* pImage = cvLoadImage("艾斯.jpg",1); IplImage* pImage2; pImage2=cvCreateImage(cvGetSize(pImage),pImage->depth,pImage->nChannels); cvCopy(pImage,pImage2,NULL); GraylevelImage(pImage2); cvSaveImage("test1.jpg",pImage2); cvNamedWindow("TEST"); cvShowImage("TEST",pImage2); cvWaitKey(); cvDestroyWindow("TEST"); cvReleaseImage(&pImage2); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.88.33
gmuooo:Image->ImgageData //圖片內容 好像是Bitmap 03/13 20:36
※ 編輯: freestylelin 來自: 220.139.88.33 (03/13 20:59) ※ 編輯: freestylelin 來自: 220.139.88.33 (03/13 21:00)
freestylelin:還是有點模糊~~可以再清楚一點嗎?抱歉 03/13 21:00
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.88.33 ※ 編輯: freestylelin 來自: 220.139.88.33 (03/13 21:03)
tseng1129:那邊指的是RGB的數值 0~255 分別填進218.170.231.179 03/16 10:28
tseng1129:去一個32 bits or 24 bits的array218.170.231.179 03/16 10:29
tseng1129:而灰階顯示則是只有 0~255 的單一數值218.170.231.179 03/16 10:30
tseng1129:所以後面RGB的array變成=>三個都是GRAY218.170.231.179 03/16 10:30