Mercurial > hg > orthanc
comparison Core/Images/ImageProcessing.h @ 2489:e91bab2d8c75
Bresenham's line algorithm
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 13 Mar 2018 21:14:21 +0100 |
parents | 345725b9350c |
children | 8ed9893c9230 |
comparison
equal
deleted
inserted
replaced
2488:345725b9350c | 2489:e91bab2d8c75 |
---|---|
37 | 37 |
38 #include <stdint.h> | 38 #include <stdint.h> |
39 | 39 |
40 namespace Orthanc | 40 namespace Orthanc |
41 { | 41 { |
42 class ImageProcessing | 42 namespace ImageProcessing |
43 { | 43 { |
44 public: | 44 void Copy(ImageAccessor& target, |
45 static void Copy(ImageAccessor& target, | 45 const ImageAccessor& source); |
46 const ImageAccessor& source); | |
47 | 46 |
48 static void Convert(ImageAccessor& target, | 47 void Convert(ImageAccessor& target, |
49 const ImageAccessor& source); | 48 const ImageAccessor& source); |
50 | 49 |
51 static void Set(ImageAccessor& image, | 50 void Set(ImageAccessor& image, |
52 int64_t value); | 51 int64_t value); |
53 | 52 |
54 static void Set(ImageAccessor& image, | 53 void Set(ImageAccessor& image, |
55 uint8_t red, | 54 uint8_t red, |
56 uint8_t green, | 55 uint8_t green, |
57 uint8_t blue, | 56 uint8_t blue, |
58 uint8_t alpha); | 57 uint8_t alpha); |
59 | 58 |
60 static void ShiftRight(ImageAccessor& target, | 59 void ShiftRight(ImageAccessor& target, |
61 unsigned int shift); | 60 unsigned int shift); |
62 | 61 |
63 static void GetMinMaxIntegerValue(int64_t& minValue, | 62 void GetMinMaxIntegerValue(int64_t& minValue, |
64 int64_t& maxValue, | 63 int64_t& maxValue, |
65 const ImageAccessor& image); | 64 const ImageAccessor& image); |
66 | 65 |
67 static void GetMinMaxFloatValue(float& minValue, | 66 void GetMinMaxFloatValue(float& minValue, |
68 float& maxValue, | 67 float& maxValue, |
69 const ImageAccessor& image); | 68 const ImageAccessor& image); |
70 | 69 |
71 static void AddConstant(ImageAccessor& image, | 70 void AddConstant(ImageAccessor& image, |
72 int64_t value); | 71 int64_t value); |
73 | 72 |
74 // "useRound" is expensive | 73 // "useRound" is expensive |
75 static void MultiplyConstant(ImageAccessor& image, | 74 void MultiplyConstant(ImageAccessor& image, |
76 float factor, | 75 float factor, |
77 bool useRound); | 76 bool useRound); |
78 | 77 |
79 // "useRound" is expensive | 78 // "useRound" is expensive |
80 static void ShiftScale(ImageAccessor& image, | 79 void ShiftScale(ImageAccessor& image, |
81 float offset, | 80 float offset, |
82 float scaling, | 81 float scaling, |
83 bool useRound); | 82 bool useRound); |
84 | 83 |
85 static void Invert(ImageAccessor& image); | 84 void Invert(ImageAccessor& image); |
85 | |
86 void DrawLineSegment(ImageAccessor& image, | |
87 int x0, | |
88 int y0, | |
89 int x1, | |
90 int y1, | |
91 int64_t value); | |
92 | |
93 void DrawLineSegment(ImageAccessor& image, | |
94 int x0, | |
95 int y0, | |
96 int x1, | |
97 int y1, | |
98 uint8_t red, | |
99 uint8_t green, | |
100 uint8_t blue, | |
101 uint8_t alpha); | |
86 }; | 102 }; |
87 } | 103 } |