From ii@any.com.ru  Wed Mar 19 10:26:06 2008
Return-Path: <ii@any.com.ru>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 42EF41065673
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 19 Mar 2008 10:26:06 +0000 (UTC)
	(envelope-from ii@any.com.ru)
Received: from smaug.esterdev.com (cable-235.kazan.ru [212.22.81.235])
	by mx1.freebsd.org (Postfix) with ESMTP id 8CC098FC15
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 19 Mar 2008 10:26:04 +0000 (UTC)
	(envelope-from ii@any.com.ru)
Received: from smaug.esterdev.com (localhost [127.0.0.1])
	by smaug.esterdev.com (8.14.2/8.13.8) with ESMTP id m2JAPrJf003474;
	Wed, 19 Mar 2008 13:25:53 +0300 (MSK)
	(envelope-from ii@any.com.ru)
Received: (from yury@localhost)
	by smaug.esterdev.com (8.14.2/8.13.8/Submit) id m2JAPr5i003473;
	Wed, 19 Mar 2008 13:25:53 +0300 (MSK)
	(envelope-from ii@any.com.ru)
Message-Id: <200803191025.m2JAPr5i003473@smaug.esterdev.com>
Date: Wed, 19 Mar 2008 13:25:53 +0300 (MSK)
From: "Iouri V. Ivliev" <ii@any.com.ru>
Reply-To: "Iouri V. Ivliev" <ii@any.com.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: New port: graphics/panomatic A tool that automates the creation of control points
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         121859
>Category:       ports
>Synopsis:       New port: graphics/panomatic A tool that automates the creation of control points
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    miwi
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 19 10:30:02 UTC 2008
>Closed-Date:    Sat Apr 26 20:24:02 UTC 2008
>Last-Modified:  Sat Apr 26 20:30:01 UTC 2008
>Originator:     Iouri V. Ivliev
>Release:        FreeBSD 6.2-RELEASE-p7 i386
>Organization:
EsterDev, Ltd.
>Environment:
System: FreeBSD smaug.esterdev.com 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7 #0: Sun Sep 23 17:28:25 UTC 2007 root@smaug.esterdev.com:/usr/obj/usr/src/sys/SMAUG i386
>Description:
Pan-o-matic is a tool that automates the creation of control points in Hugin.

WWW: http://aorlinsk2.free.fr/panomatic/
>How-To-Repeat:
>Fix:
--- panomatic.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	graphics/panomatic
#	graphics/panomatic/Makefile
#	graphics/panomatic/distinfo
#	graphics/panomatic/pkg-descr
#	graphics/panomatic/files
#	graphics/panomatic/files/patch-panomatic-PanoDetector.cpp
#	graphics/panomatic/files/patch-panomatic-PanoDetector.h
#	graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp
#	graphics/panomatic/files/patch-panomatic-TestCode.cpp
#	graphics/panomatic/files/patch-panomatic-TestCode.h
#	graphics/panomatic/files/patch-panomatic-main.cpp
#
echo c - graphics/panomatic
mkdir -p graphics/panomatic > /dev/null 2>&1
echo x - graphics/panomatic/Makefile
sed 's/^X//' >graphics/panomatic/Makefile << 'END-of-graphics/panomatic/Makefile'
X# New ports collection makefile for:   panomatic
X# Date created:        Fri Mar  7 11:06:34 UTC 2008
X# Whom:                argv[0] (Iouri V. Ivliev)
X#
X# $FreeBSD$
X
XPORTNAME=	panomatic
XPORTVERSION=	0.9.4
XPORTREVISION=	0
XDISTVERSIONSUFFIX=-src
XCATEGORIES=	graphics
XMASTER_SITES=	http://people.esterdev.com/yury/bicycles/
XWRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
X
XMAINTAINER=	ii@any.com.ru
XCOMMENT=	A tool that automates the creation of control points.
X
XGNU_CONFIGURE=	yes
XCONFIGURE_TARGET=	--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
XUSE_BZIP2=	yes
XUSE_GMAKE=	yes
X
XBUILD_DEPENDS=	bjam:${PORTSDIR}/devel/boost
X
XPLIST_FILES=	bin/panomatic
X
X.include <bsd.port.mk>
END-of-graphics/panomatic/Makefile
echo x - graphics/panomatic/distinfo
sed 's/^X//' >graphics/panomatic/distinfo << 'END-of-graphics/panomatic/distinfo'
XMD5 (panomatic-0.9.4-src.tar.bz2) = 0b08a4f7e1b4ecaf6ae364779a01da07
XSHA256 (panomatic-0.9.4-src.tar.bz2) = 9673c23d09783a526d09d54327f2ea32dfff053629411939cfca223fe690d36d
XSIZE (panomatic-0.9.4-src.tar.bz2) = 1598683
END-of-graphics/panomatic/distinfo
echo x - graphics/panomatic/pkg-descr
sed 's/^X//' >graphics/panomatic/pkg-descr << 'END-of-graphics/panomatic/pkg-descr'
XPan-o-matic is a tool that automates the creation of control points in Hugin.
X
XWWW: http://aorlinsk2.free.fr/panomatic/
END-of-graphics/panomatic/pkg-descr
echo c - graphics/panomatic/files
mkdir -p graphics/panomatic/files > /dev/null 2>&1
echo x - graphics/panomatic/files/patch-panomatic-PanoDetector.cpp
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-PanoDetector.cpp << 'END-of-graphics/panomatic/files/patch-panomatic-PanoDetector.cpp'
X--- panomatic/PanoDetector.cpp.orig	2008-03-10 20:17:33.000000000 +0000
X+++ panomatic/PanoDetector.cpp	2008-03-11 08:52:59.000000000 +0000
X@@ -26,7 +26,7 @@
X 	_sieve1Width(10), _sieve1Height(10), _sieve1Size(10),
X 	_kdTreeSearchSteps(40), _kdTreeSecondDistance(0.15), _sieve2Width(5), _sieve2Height(5),
X 	_sieve2Size(1), _test(false), _cores(utils::getCPUCount()), _ransacIters(1000), _ransacDistanceThres(25),
X-	_minimumMatches(4), _linearMatch(false), _linearMatchLen(1), _downscale(true)
X+	_minimumMatches(4), _linearMatch(false), _linearMatchLen(1), _scale(0.5)
X {
X 	
X }
X@@ -67,7 +67,7 @@
X 	cout << "Output file       : " << _outputFile << endl;
X 	cout << "Number of CPU     : " << _cores << endl << endl;
X 	cout << "Input image options" << endl;
X-    cout << "  Downscale to half-size : " << (_downscale?"yes":"no") << endl;
X+    cout << "  Scale factor : " << _scale << endl;
X     cout << "SURF Options" << endl;
X 	cout << "  Extended : " << (_extendedSurf?"yes":"no") << endl;
X 	cout << "  Score threshold : " << _surfScoreThreshold << endl;
END-of-graphics/panomatic/files/patch-panomatic-PanoDetector.cpp
echo x - graphics/panomatic/files/patch-panomatic-PanoDetector.h
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-PanoDetector.h << 'END-of-graphics/panomatic/files/patch-panomatic-PanoDetector.h'
X--- panomatic/PanoDetector.h.orig	2008-03-10 20:17:33.000000000 +0000
X+++ panomatic/PanoDetector.h	2008-03-11 08:52:59.000000000 +0000
X@@ -84,8 +84,8 @@
X 	inline bool getLinearMatch() const { return _linearMatch; }
X 	inline int  getLinearMatchLen() const { return _linearMatchLen; }
X 
X-	inline bool	getDownscale() const { return _downscale; }
X-    inline void setDownscale(bool iDown) { _downscale = iDown; }
X+	inline float	getScale() const { return _scale; }
X+    inline void setScale(float iScale) { _scale = iScale; }
X 
X 	
X 	inline void addFile(const std::string& iFile) { _files.push_back(iFile); }
X@@ -126,7 +126,7 @@
X 
X 	bool					_test;
X 	int						_cores;
X-    bool                    _downscale;
X+    float                    _scale;
X 	
X 	// list of files
X 	FileNameList_t			_files;
END-of-graphics/panomatic/files/patch-panomatic-PanoDetector.h
echo x - graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp << 'END-of-graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp'
X--- panomatic/PanoDetectorLogic.cpp.orig	2008-03-10 20:17:33.000000000 +0000
X+++ panomatic/PanoDetectorLogic.cpp	2008-03-11 08:52:59.000000000 +0000
X@@ -98,25 +98,27 @@
X     	
X 	    int aNewImgWidth = aImageInfo.width();
X 	    int aNewImgHeight = aImageInfo.height();
X+ 	    float scale = iPanoDetector.getScale();
X 
X-	    if (iPanoDetector.getDownscale())
X+ 	    if (scale != 1.)
X 	    {
X-		    aNewImgWidth >>= 1;
X-		    aNewImgHeight >>= 1;
X+ 		    aNewImgWidth = (int)(aNewImgWidth * scale);
X+ 		    aNewImgHeight = (int)(aNewImgHeight * scale);
X 	    }
X 
X 	    vigra::DImage aImageDouble(aNewImgWidth, aNewImgHeight);
X 
X 	    if(aImageInfo.isGrayscale())
X 	    {
X-		    if (iPanoDetector.getDownscale())
X+ 		    if (scale != 1.)
X 		    {
X 			    TRACE_IMG("Load greyscale...");
X 			    vigra::DImage aImageG(aImageInfo.width(), aImageInfo.height());
X 			    importImage(aImageInfo, destImage(aImageG));
X-			    vigra::resizeImageNoInterpolation(
X+			    TRACE_IMG("Resize greyscale witn factor " << scale << " ...");
X+ 			    vigra::resizeImageLinearInterpolation(
X 				    aImageG.upperLeft(),
X-				    aImageG.upperLeft() + vigra::Diff2D(aNewImgWidth * 2, aNewImgHeight * 2),
X+ 				    aImageG.upperLeft() + vigra::Diff2D((int)(aNewImgWidth / scale), (int)(aNewImgHeight / scale)),
X 				    vigra::DImage::Accessor(),
X 				    aImageDouble.upperLeft(),
X 				    aImageDouble.lowerRight(),
X@@ -150,12 +152,12 @@
X                 return false;
X             }
X 
X-		    if (iPanoDetector.getDownscale())
X+ 		    if (scale != 1.)
X 		    {
X-			    TRACE_IMG("Resize to greyscale double...");
X-			    vigra::resizeImageNoInterpolation(
X+			    TRACE_IMG("Resize to greyscale witn factor " << scale << " ...");
X+ 			    vigra::resizeImageLinearInterpolation(
X 					    aImageRGB.upperLeft(),
X-					    aImageRGB.upperLeft() + vigra::Diff2D(aNewImgWidth * 2, aNewImgHeight * 2),
X+ 					    aImageRGB.upperLeft() + vigra::Diff2D((int)(aNewImgWidth / scale), (int)(aNewImgHeight / scale)),
X 					    vigra::RGBToGrayAccessor<vigra::RGBValue<double> >(),
X 					    aImageDouble.upperLeft(),
X 					    aImageDouble.lowerRight(),
X@@ -390,7 +392,7 @@
X 
X 	if (iPanoDetector.getTest())
X 		TestCode::drawRansacMatches(ioMatchData._i1_name, ioMatchData._i2_name, ioMatchData._matches, 
X-									aRemovedMatches, aRansacFilter, iPanoDetector.getDownscale());
X+									aRemovedMatches, aRansacFilter, iPanoDetector.getScale());
X 
X 	return true;
X 
X@@ -502,12 +504,13 @@
X 		BOOST_FOREACH(PointMatchPtr& aPM, aM._matches)
X 		{
X 			aOut << "c n" << aN1 << " N" << aN2 << " ";  
X-			if (getDownscale())
X+			float scale = getScale();
X+			if (scale != 1.)
X 			{
X-				aOut << "x" << 2.0 * aPM->_img1_x << " ";
X-				aOut << "y" << 2.0 * aPM->_img1_y << " ";
X-				aOut << "X" << 2.0 * aPM->_img2_x << " ";
X-				aOut << "Y" << 2.0 * aPM->_img2_y << " ";
X+				aOut << "x" << aPM->_img1_x / scale << " ";
X+				aOut << "y" << aPM->_img1_y / scale << " ";
X+				aOut << "X" << aPM->_img2_x / scale << " ";
X+				aOut << "Y" << aPM->_img2_y / scale << " ";
X 			}
X 			else
X 			{
END-of-graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp
echo x - graphics/panomatic/files/patch-panomatic-TestCode.cpp
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-TestCode.cpp << 'END-of-graphics/panomatic/files/patch-panomatic-TestCode.cpp'
X--- panomatic/TestCode.cpp.orig	2008-03-10 20:17:33.000000000 +0000
X+++ panomatic/TestCode.cpp	2008-03-11 08:52:59.000000000 +0000
X@@ -88,13 +88,10 @@
X }
X 
X void TestCode::drawRansacMatches(std::string& i1, std::string& i2, 
X-								 PointMatchVector_t& iOK, PointMatchVector_t& iNOK, Ransac& iRansac, bool iHalf)
X+								 PointMatchVector_t& iOK, PointMatchVector_t& iNOK, Ransac& iRansac, float iScale)
X {
X-	double aDoubleFactor = 1.0;
X-    if (iHalf)
X-        aDoubleFactor = 2.0;
X+	double aDoubleFactor = 1.0 / iScale;
X 
X-    
X     std::cout << "writing file outcomp.png ..." << endl;
X 	
X 	// write a side by side image with match pairs and
END-of-graphics/panomatic/files/patch-panomatic-TestCode.cpp
echo x - graphics/panomatic/files/patch-panomatic-TestCode.h
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-TestCode.h << 'END-of-graphics/panomatic/files/patch-panomatic-TestCode.h'
X--- panomatic/TestCode.h.orig	2008-03-05 21:12:18.000000000 +0000
X+++ panomatic/TestCode.h	2008-03-11 08:52:59.000000000 +0000
X@@ -29,7 +29,7 @@
X {
X public:
X 	static void drawRansacMatches(std::string& i1, std::string& i2, 
X-						PointMatchVector_t& iOK, PointMatchVector_t& iNOK, Ransac& iRansac, bool iHalf);
X+						PointMatchVector_t& iOK, PointMatchVector_t& iNOK, Ransac& iRansac, float iScale);
X 
X 
X 
END-of-graphics/panomatic/files/patch-panomatic-TestCode.h
echo x - graphics/panomatic/files/patch-panomatic-main.cpp
sed 's/^X//' >graphics/panomatic/files/patch-panomatic-main.cpp << 'END-of-graphics/panomatic/files/patch-panomatic-main.cpp'
X--- panomatic/main.cpp.orig	2008-03-10 20:19:09.000000000 +0000
X+++ panomatic/main.cpp	2008-03-11 08:56:34.000000000 +0000
X@@ -92,6 +92,7 @@
X 		MyOutput my;
X 		cmd.setOutput(&my);
X 		
X+		ValueArg<float> aArgScale("","scale", "Scale image with factor to detect keypoints    (default:0.5)\n", false, 0.5, "float");
X 		SwitchArg aArgFullScale("","fullscale", "Uses full scale image to detect keypoints    (default:false)\n", false);
X 		SwitchArg aArgSurfExtended("","surf128", "Uses extended SURF (128 descriptors)    (default:true)", true);
X 		ValueArg<int> aArgSurfScoreThreshold("","surfscore", "SURF Detection score threshold    (default : 1000)\n", false, 1000, "int");
X@@ -130,6 +131,7 @@
X 		cmd.add(aArgSurfScoreThreshold);		
X 		cmd.add(aArgSurfExtended);
X 		cmd.add(aArgFullScale);
X+		cmd.add(aArgScale);
X 		
X 		//cmd.add( aArgSurfExtended );
X 
X@@ -175,7 +177,8 @@
X 		if (aArgSieve2Size.isSet())			ioPanoDetector.setSieve2Size(aArgSieve2Size.getValue());
X 		if (aArgLinearMatch.isSet())		ioPanoDetector.setLinearMatch(aArgLinearMatch.getValue());
X 		if (aArgLinearMatchLen.isSet())		ioPanoDetector.setLinearMatchLen(aArgLinearMatchLen.getValue());
X-        if (aArgFullScale.isSet())          ioPanoDetector.setDownscale(false);
X+        if (aArgFullScale.isSet())          ioPanoDetector.setScale(1.);
X+        if (aArgScale.isSet())          ioPanoDetector.setScale(aArgScale.getValue());
X             
X 		if (aArgTest.isSet())				ioPanoDetector.setTest(aArgTest.getValue());
X 		if (aArgCores.isSet())				ioPanoDetector.setCores(aArgCores.getValue());
END-of-graphics/panomatic/files/patch-panomatic-main.cpp
exit
--- panomatic.shar ends here ---
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->miwi 
Responsible-Changed-By: miwi 
Responsible-Changed-When: Wed Mar 19 10:45:33 UTC 2008 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=121859 
State-Changed-From-To: open->closed 
State-Changed-By: miwi 
State-Changed-When: Sat Apr 26 20:24:00 UTC 2008 
State-Changed-Why:  
New port added, with minor changes. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=121859 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/121859: commit references a PR
Date: Sat, 26 Apr 2008 20:24:09 +0000 (UTC)

 miwi        2008-04-26 20:24:03 UTC
 
   FreeBSD ports repository
 
   Modified files:
     graphics             Makefile 
   Added files:
     graphics/panomatic   Makefile distinfo pkg-descr 
     graphics/panomatic/files patch-panomatic-PanoDetector.cpp 
                              patch-panomatic-PanoDetector.h 
                              patch-panomatic-PanoDetectorLogic.cpp 
                              patch-panomatic-TestCode.cpp 
                              patch-panomatic-TestCode.h 
                              patch-panomatic-main.cpp 
   Log:
   Pan-o-matic is a tool that automates the creation of control points in Hugin.
   
   WWW: http://aorlinsk2.free.fr/panomatic/
   
   PR:             ports/121859
   Submitted by:   Iouri V. Ivliev <ii@any.com.ru>
   
   Revision  Changes    Path
   1.1148    +1 -0      ports/graphics/Makefile
   1.1       +27 -0     ports/graphics/panomatic/Makefile (new)
   1.1       +3 -0      ports/graphics/panomatic/distinfo (new)
   1.1       +22 -0     ports/graphics/panomatic/files/patch-panomatic-PanoDetector.cpp (new)
   1.1       +22 -0     ports/graphics/panomatic/files/patch-panomatic-PanoDetector.h (new)
   1.1       +81 -0     ports/graphics/panomatic/files/patch-panomatic-PanoDetectorLogic.cpp (new)
   1.1       +18 -0     ports/graphics/panomatic/files/patch-panomatic-TestCode.cpp (new)
   1.1       +11 -0     ports/graphics/panomatic/files/patch-panomatic-TestCode.h (new)
   1.1       +22 -0     ports/graphics/panomatic/files/patch-panomatic-main.cpp (new)
   1.1       +3 -0      ports/graphics/panomatic/pkg-descr (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
