7 #ifndef YARP_SIG_IMAGEDRAW_H
8 #define YARP_SIG_IMAGEDRAW_H
27 int x,
int y,
int dx,
int dy) {
28 const double vx = double(dx - x);
29 const double vy = double(dy - y);
31 double vbigger = fabs((fabs(vy)>fabs(vx))?vy:vx);
32 const int steps = int(2*vbigger);
33 const double r = 1.0 / steps;
34 for (
int i = 0; i <= steps; i++) {
35 dest.
safePixel(
int(x+vx*i*r),
int(y+vy*i*r)) = pix;
41 int i,
int j,
int r) {
42 float d, r2 = (float)(r*r);
43 for (
int ii=i-r; ii<=i+r; ii++) {
44 for (
int jj=j-r; jj<=j+r; jj++) {
45 d = float((ii-i)*(ii-i)+(jj-j)*(jj-j));
55 int i,
int j,
int r) {
56 for (
int ii=i-r; ii<=i+r; ii++) {
57 for (
int jj=j-r; jj<=j+r; jj++) {
67 int i,
int j,
int r) {
68 float d, r2 = float(r*r), r2l = float((r-1.1)*(r-1.1));
69 for (
int ii=i-r; ii<=i+r; ii++) {
70 for (
int jj=j-r; jj<=j+r; jj++) {
71 d = float((ii-i)*(ii-i)+(jj-j)*(jj-j));
72 if (d<=r2 && d>=r2l) {
81 int i,
int j,
int h2,
int w2) {
83 for (
float th=0; th<2.0*3.14159; th+=0.01) {
93 int i,
int j,
int w,
int h) {
94 for (
int ii=i-w; ii<=i+w; ii++) {
100 for (
int jj=j-h; jj<=j+h; jj++) {
113 int i,
int j,
int w,
int h) {
114 for (
int ii=i-w; ii<=i+w; ii++) {
115 for (
int jj=j-h; jj<=j+h; jj++) {
123 const T& thetalo,
const T& thetahi,
124 const T& pix0,
const T& pix1) {
127 for (
int i=0; i<h; i++) {
128 for (
int j=0; j<w; j++) {
129 if (src(i,j)>=thetalo && src(i,j)<=thetahi) {
143 for (
int i=0; i<h; i++) {
144 for (
int j=0; j<w; j++) {
151 #define IMGFOR(img,i,j) for (size_t i=0; i<(img).width(); i++) for (size_t j=0; j<(img).height(); j++)
T & safePixel(size_t x, size_t y)
size_t width() const
Gets width of image in pixels.
size_t height() const
Gets height of image in pixels.
void addOvalOutline(ImageOf< T > &dest, const T &pix, int i, int j, int h2, int w2)
void addRectangleOutline(ImageOf< T > &dest, const T &pix, int i, int j, int w, int h)
void addCrossHair(ImageOf< T > &dest, const T &pix, int i, int j, int r)
int applyThreshold(ImageOf< T > &src, ImageOf< T > &dest, const T &thetalo, const T &thetahi, const T &pix0, const T &pix1)
void addSegment(ImageOf< T > &dest, const T &pix, int x, int y, int dx, int dy)
void addCircle(ImageOf< T > &dest, const T &pix, int i, int j, int r)
void addRectangle(ImageOf< T > &dest, const T &pix, int i, int j, int w, int h)
warning : i, j is x, y center of rectangle
void setImagePixels(ImageOf< T > &src, const T &pix)
void addCircleOutline(ImageOf< T > &dest, const T &pix, int i, int j, int r)
The main, catch-all namespace for YARP.