画像に線を引くコード

サンプルの色素を読み込み変更するコードに「画像に線を引く」コードを作成し追加する


参照先
元コード(基本構造体)
一番下にファイルをアップロードしました



include <cv.h>
include <highgui.h>

int
main (int argc, char **argv)
{
 int x, y;
 uchar p[3];
 IplImage *img;

 if (argc != 2 || (img = cvLoadImage (argv[1], CV_LOAD_IMAGE_COLOR)) == 0)
   return -1;

  (1)画素値(R,G,B)を順次取得し,変更する
 for (y = 0; y < img->height; y++) {
   for (x = 0; x < img->width; x++) {
      画素値を直接操作する一例 
     //if(x==img->width/2 || x==img->width/4 || x==img->width/4*3 || x==img->width/8 || x==img->width/8*3 || x==img->width/8*5 
      || x==img->width/8*7 || y==img->height/2 || y==img->height/4 || y==img->height/4*3 || y==img->height/8
       || y==img->height/8*3 || y==img->height/8*5 || y==img->height/8*7)  ↓の同じ線を引くためのif文、格子状の線を引く
   //if(y==img->height/2 || x==img->width/2) ↓の同じ線を引くためのif文、画像の幅と高さが半分のときに線を引く
     if(img->height/2-5<y && y<img->height/2+5){    追加した線を引くためのif文、画像の高さ半分±5のときに線を引く(ピンク)
     img->imageData[img->widthStep * y + x * 3] = cvRound (160);
     img->imageData[img->widthStep * y + x * 3 + 1] = cvRound (0);
     img->imageData[img->widthStep * y + x * 3 + 2] = cvRound (255);
     }
   }
 }

 cvNamedWindow ("Image", CV_WINDOW_AUTOSIZE);
 cvShowImage ("Image", img);
 cvWaitKey (0);

 cvDestroyWindow ("Image");
 cvReleaseImage (&img);
 return 0;
}

名前:
コメント:

すべてのコメントを見る
最終更新:2009年07月28日 16:25
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル