openCvSharp2 以降はC++ interfaceを使えるので、indexerでピクセルを触りたい場合は "Mat"を使うとよいようだ (IplImage, CvMatではなく)
---
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// ここから追加
using OpenCvSharp;
using OpenCvSharp.CPlusPlus; // Matを使うなら必要
using System.Diagnostics;
namespace _03_matTest
{
class Program
{
static void Main(string[] args)
{
Mat matImage = new Mat(@"C:\Users\hoge\Pictures\hoge.jpg");
var indexer = matImage.GetGenericIndexer<Vec3b>(); // indexer でアクセスする例
var px = indexer[5, 5]; // x:5 y:5のpixel
Debug.WriteLine(px[0] + ":" + px[1] + ":" + px[2]);
px[0] = 0; // B
px[1] = 0; // G
px[2] = 255; // R
indexer[5, 5] = px;
using (new Window("photo", matImage)) // ウィンドウを作成して画像を表示
{
Debug.WriteLine(matImage.Width + " : " + matImage.Height);
Cv.WaitKey();
}
}
}
}
参考にさせていただきました
http://schima.hatenablog.com/entry/2014/03/29/140106
http://sourcechord.hatenablog.com/entry/2016/08/15/235654
0 件のコメント:
コメントを投稿