opencv在windows form顯示的問題
看板C_and_CPP (C/C++)作者benbchung (距離...是妳經過我的時候)時間15年前 (2010/12/21 00:26)推噓1(1推 0噓 3→)留言4則, 2人參與討論串1/1
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...)
vc++
額外使用到的庫(Library Used) (Ex: OpenGL, ...)
opencv
小弟想在vc++2008的windows form中,顯示利用從opencv抓到的webcam畫面.
因為是要用picturebox秀出來,我知道要先將IplImage轉換成bmp的格式.
但是碰到一個問題,就是轉換的程序中,似乎耗費了很多的時間,導致畫面
十分緩慢.
我的目的只是想要在windows form中顯示抓到的webcam畫面,而不是另外跳出視窗畫面,
不知道除了利用轉換成bmp的格式顯示在picturebox外,是否還有其他不耗費資源的方式?
以下是我ipl轉換bmp的方式,是抓取每一點的RGB直,再重新貼在新的bmp上顯示
void IplImageToTBitmap(IplImage *img1,Bitmap^ bmp1)//img是輸入,bmp是秀出的圖
{
int W,H;
uchar Blue,Green,Red;
H=img1->height;
W=(img1->widthStep);
bmp1 = gcnew Bitmap(W,H);//創建bmp的長寬大小跟img一樣大
int r,g,b,a;
for(int j=0;j<img1->height;j=j+1)
{
for(int i=0;i<img1->widthStep;i=i+3)
{
Blue=img1->imageData[j*img1->widthStep+i];//抓取img的RGB值
Green=img1->imageData[j*img1->widthStep+i+1];
Red=img1->imageData[j*img1->widthStep+i+2];
Color pixelColor = bmp1->GetPixel(i/3, j);
r=Red;
g=Green;
b=Blue;
a=pixelColor.A;
Color newColor = Color::FromArgb(255, r, g, b);//複製Img的rgb值
bmp1->SetPixel((i/3), j, newColor); //到bmp上面
}
}
pictureBox1->Image = bmp1;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.201.62
→
12/21 01:51, , 1F
12/21 01:51, 1F
推
12/21 02:02, , 2F
12/21 02:02, 2F
→
12/21 02:03, , 3F
12/21 02:03, 3F
→
12/21 02:03, , 4F
12/21 02:03, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章