7#ifndef YARP_SIG_IMAGEDRAW_H
8#define YARP_SIG_IMAGEDRAW_H
20 const double vx = double(dx - x);
21 const double vy = double(dy - y);
23 double vbigger = fabs((fabs(vy) > fabs(vx)) ? vy : vx);
24 const int steps = int(2 * vbigger);
25 const double r = 1.0 / steps;
26 for (
int i = 0; i <= steps; i++) {
27 dest.
safePixel(
int(x + vx * i * r),
int(y + vy * i * r)) = pix;
33 int i,
int j,
int r) {
34 float d, r2 = (float)(r*r);
35 for (
int ii=i-r; ii<=i+r; ii++) {
36 for (
int jj=j-r; jj<=j+r; jj++) {
37 d = float((ii-i)*(ii-i)+(jj-j)*(jj-j));
47 int i,
int j,
int r) {
48 for (
int ii=i-r; ii<=i+r; ii++) {
49 for (
int jj=j-r; jj<=j+r; jj++) {
59 int i,
int j,
int r) {
60 float d, r2 = float(r*r), r2l = float((r-1.1)*(r-1.1));
61 for (
int ii=i-r; ii<=i+r; ii++) {
62 for (
int jj=j-r; jj<=j+r; jj++) {
63 d = float((ii-i)*(ii-i)+(jj-j)*(jj-j));
64 if (d<=r2 && d>=r2l) {
73 int i,
int j,
int h2,
int w2) {
75 for (
float th=0; th<2.0*3.14159; th+=0.01) {
85 int i,
int j,
int w,
int h) {
86 for (
int ii=i-w; ii<=i+w; ii++) {
92 for (
int jj=j-h; jj<=j+h; jj++) {
105 int i,
int j,
int w,
int h) {
106 for (
int ii=i-w; ii<=i+w; ii++) {
107 for (
int jj=j-h; jj<=j+h; jj++) {
115 const T& thetalo,
const T& thetahi,
116 const T& pix0,
const T& pix1) {
119 for (
int i=0; i<h; i++) {
120 for (
int j=0; j<w; j++) {
121 if (src(i,j)>=thetalo && src(i,j)<=thetahi) {
135 for (
int i=0; i<h; i++) {
136 for (
int j=0; j<w; j++) {
143#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)