サンプルの色素を読み込み変更するコードに「画像に線を引く」コードを作成し追加する
参照先
元コード(
基本構造体)
一番下にファイルをアップロードしました
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