討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 沒有人比Cloudera更了解大數據
[ 回上頁 ] [ 討論區發言規則 ]
基本RGB調色盤顯示(細部問題及程式優化詢問)
更改我的閱讀文章字型大小
作者 : redonizuka(Saul)
[ 貼文 12 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/4/14 上午 09:35:04
大家好:

     目前利用opencv來學習影像處理以及辨識,試寫了一個調色盤程式來學習

     但其中有兩點問題想要詢問大家,程式碼如下

#include <stdio.h>
#include <stdlib.h>
#include <highgui.h>
#include <cv.h>


char TrackBarNameB[]="B";
char TrackBarNameG[]="G";
char TrackBarNameR[]="R";

void onTrackBarB(int position);
void onTrackBarG(int position);
void onTrackBarR(int position);
IplImage *Image1;

int main()

{
    cvNamedWindow("Show Image",0);
    CvSize Image1Size=cvSize(640,480);
    Image1=cvCreateImage(Image1Size,IPL_DEPTH_8U,3);
// cvResizeWindow("Show Image",1024,768);

    cvCreateTrackbar(TrackBarNameB,"Show Image",0,255,onTrackBarB);
    cvCreateTrackbar(TrackBarNameG,"Show Image",0,255,onTrackBarG);
    cvCreateTrackbar(TrackBarNameR,"Show Image",0,255,onTrackBarR);

    cvWaitKey(0);
    cvDestroyAllWindows();
    cvReleaseImage(&Image1);
}

void onTrackBarB(int position)
{
    int i,j;
    for(i=0;i<Image1->height;i++)
    {
     for(j=0;j<Image1->widthStep;j=j+3)
     {
     Image1->imageData[i*Image1->widthStep+j]=position;
     }
    }
     cvShowImage("Show Image",Image1);
}

void onTrackBarG(int position)
{
    int i,j;
    for(i=0;i<Image1->height;i++)
    {
     for(j=0;j<Image1->widthStep;j=j+3)
     {
     Image1->imageData[i*Image1->widthStep+j+1]=position;
     }
    }
     cvShowImage("Show Image",Image1);
}

void onTrackBarR(int position)
{
    int i,j;
    for(i=0;i<Image1->height;i++)
    {
     for(j=0;j<Image1->widthStep;j=j+3)
     {
     Image1->imageData[i*Image1->widthStep+j+2]=position;
     }
    }
     cvShowImage("Show Image",Image1);
}


第一個問題:void onTrackBarR(int position)、void onTrackBarG(int position)、void onTrackBarB(int position)
這三個副程式內容物幾乎一樣,有辦法將這三個富城是結合在一起,變成呼叫一個副程式即可以達到三原色數值擷取及顯示的功能嗎?
若能想詢問如何修改?

第二個問題:這個程式在調整影像尺寸的時候, 我以CvSize Image1Size=cvSize(640,480); 此函數來定義,但當我直接對此函數進行尺寸修改的時候,如CvSize Image1Size=cvSize(320,240);時,他仍然顯示640,480的尺寸,反而要透過 cvResizeWindow("Show Image",1024,768);才會進行變更,以確定有重新build,想請問此點原因?
 板主 : 徵求中
 > 影像處理與計算機圖學 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 影像處理與計算機圖學 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
影像處理與計算機圖學
1 Linkin 780 
2 CrazyStar 400 
3 青衫 360 
4 白老鼠(Gary) 330 
5 悠悠深藍 220 
6 none 220 
7 shou 200 
8 ultra 200 
9 ghost 140 
10 ozzy 130 
影像處理與計算機圖學
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
1.611328E-02