左上隅から右に向かって色の変わる位置を調べ、同様に右下隅から左に向かって色の変わる位置を調べて、その値と画像の幅と大きさの値で矩形を描けば、思惑の描画ができます。
OpenCVの操作は不慣れなため未検証ですが、概ね以下のようなコードの流れで可能でしょう。
java
1
2// 画像オブジェクトをimgに取得済みとする。
3
4// 画像の大きさを取得する。
5Size sizeimg = img.size();
6double height = sizeimg.height;
7double width = sizeimg.width;
8
9double i, left, right;
10
11// 画像の左上隅の点と右下隅の点の座標を取得する配列を宣言する。
12double[] basepoint = new double[3];
13double[] endpoint = new double[3];
14
15// 左上隅から右に各点の色を調べて違った位置を見つける。
16basepoint = img.get(0, 0);
17i=0;
18while(i<width || basepoint.equals(img.get(i,0))){
19 ;i++;
20}
21// 左の塗り始めのX座標を取得。
22left = i;
23
24// 右下隅から右に各点の色を調べて違った位置を見つける。
25endpoint = img.get(width-1, height-1);
26i=width;
27while(i>=0 || endpoint.equals(img.get(i,height-1))){
28 ;i--;
29}
30// 右の塗り終わりのX座標を取得。
31right = i;
32
33// 画像の幅と高さと取得した座標を元に赤い矩形を描く。
34rectangle(img, Point(left,0), Point(right, height-1), Scalar(0,0,255), -1, CV_AA);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。