add() public method

public add ( float a ) : Channel
a float
return Channel
コード例 #1
0
ファイル: Channel.cs プロジェクト: N3X15/VoxelSim
		public Channel relativeIntensity(int radius) {
			radius = Math.Max(1, radius);
			Channel relint = new Channel(width, height);
			float factor = 1f/((2*radius + 1)*(2*radius + 1));
			float sum, avr;
	
			for (int x = 0; x < width; x++) {
				int y = 0;
				sum = 0f;
				for (int i = -radius; i < radius + 1; i++) {
					for (int j = -radius; j < radius + 1; j++) {
						sum += getPixelWrap(x + j, y + i);
					}
				}
				for (; y < height; y++) {
					if (y > 0) {
						for (int j = -radius; j < radius + 1; j++) {
							sum -= getPixelWrap(x + j, y - radius - 1);
							sum += getPixelWrap(x + j, y + radius);
						}
					}
					avr = sum*factor;
					relint.putPixel(x, y, getPixel(x, y) - avr);
				}
			}
			return relint.add(0.5f);
		}