trapezoidwarp.h

来自「barcode readers [ from Image]」· C头文件 代码 · 共 97 行

H
97
字号
//
// TrapezoidWarp
//   Warps a trapezoidal region in an image into a rectangular image.
//   We always return an image as wide as the widest row in the trapezoid
//   so all the calculations can be done using interpolation.
//   The height of the output image is the height of the trapezoid.
//
// Copyright (C) 2006 by Jon A. Webb (Contact via GMail; username is jonawebb)
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
//


#ifndef TrapezoidWarp_h
#define TrapezoidWarp_h

#include "Image.h"
#include "ImageSize.h"
#include "PipelineStage.h"

#include <e32cons.h>
#include <e32std.h>


namespace Algorithm
{

	class CTrapezoidWarp :
		public Core::MPipelineStage
	{
		// Lifecycle
	public:
		IMPORT_C static CTrapezoidWarp* NewL(
			TUint nRowStart, 
			TUint nRowEnd, 
			TUint nColLeftStart, 
			TUint nColRightStart,
			TUint nColLeftEnd, 
			TUint nColRightEnd);
		~CTrapezoidWarp(void);
	private:
		CTrapezoidWarp(
			TUint nRowStart, 
			TUint nRowEnd, 
			TUint nColLeftStart, 
			TUint nColRightStart,
			TUint nColLeftEnd, 
			TUint nColRightEnd);

		void ConstructL();

		///////////////////// Overrides ////////////////////////
		//
		// Overrides from MPipelineStage:
		//
			// Operations
		public:
			Core::CImage FrontL();
			void PushL(Core::CImage);

			// Accessors
		public:
			bool Empty() const;
		//
		//
		/////////////////// End of overrides ///////////////////

	private:
		// Attributes
		bool ibEmpty;				// if true no output is ready
		Core::CImage iImage;		// the output image
		int inColLeftEnd;			// bottom left column of trapezoid
		int inColLeftStart;			// top left column of trapezoid
		int inColRightEnd;			// bottom right column of trapezoid
		int inColRightStart;		// top right column of trapezoid
		int inHeight;				// the trapezoid height, also height of output
		int inRowEnd;				// bottom row of trapezoid
		int inRowStart;				// top row of trapezoid
		int inWidth;				// output image width
	};

};

#endif // TrapezoidWarp_h

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?