{"action":"created","comment":{"url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/comments/30522468","id":30522468,"diff_hunk":"@@ -0,0 +1,711 @@\n+/**\n+ *  This program is free software: you can redistribute it and/or modify\n+ *  it under the terms of the GNU Lesser General Public License as\n+ *  published by the Free Software Foundation, either version 3 of the\n+ *  License, or  (at your option) any later version.\n+ *\n+ *  This program is distributed in the hope that it will be useful,\n+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ *  GNU General Public License for more details.\n+ *\n+ *  You should have received a copy of the GNU General Public License\n+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+ *\n+ **/\n+\n+#pragma once\n+\n+/**\n+ * @file AlphaThickSegmentComputer.h\n+ * @author Bertrand Kerautret (\\c kerautre@loria.fr )\n+ * LORIA (CNRS, UMR 7503), University of Nancy, France\n+ * @author Alexandre Faure\n+ * @author Fabien Feschet \n+ * @author Mohammad Said\n+ * @author Jacques-Olivier Lachaud\n+ *\n+ * @date 2015/01/05\n+ *\n+ * Header file for module AlphaThickSegmentComputer.cpp\n+ *\n+ * This file is part of the DGtal library.\n+ */\n+\n+#if defined(AlphaThickSegmentComputer_RECURSES)\n+#error Recursive header files inclusion detected in AlphaThickSegmentComputer.h\n+#else // defined(AlphaThickSegmentComputer_RECURSES)\n+/** Prevents recursive inclusion of headers. */\n+#define AlphaThickSegmentComputer_RECURSES\n+\n+#if !defined AlphaThickSegmentComputer_h\n+/** Prevents repeated inclusion of headers. */\n+#define AlphaThickSegmentComputer_h\n+\n+//////////////////////////////////////////////////////////////////////////////\n+// Inclusions\n+#include <iostream>\n+#include \"DGtal/base/Common.h\"\n+#include \"DGtal/base/ReverseIterator.h\"\n+#include \"DGtal/kernel/SpaceND.h\"\n+#include \"DGtal/geometry/surfaces/ParallelStrip.h\"\n+//////////////////////////////////////////////////////////////////////////////\n+\n+namespace DGtal\n+{\n+\n+/////////////////////////////////////////////////////////////////////////////\n+// class AlphaThickSegmentComputer\n+/**\n+ * Description of class 'AlphaThickSegmentComputer' <p>\n+ *\n+ * \\brief Aim: This class is devoted to the recognition of the alpha\n+ * thick segment as described in \\cite FaureTangential2008 . From a\n+ * maximal diagonal alphaMax thickness, it allows to apply the recognition\n+ * of a thick segment with the ability to take into accounts some\n+ * noise. Moreover the segment can be detected from points not\n+ * necessary connected and/or with floating coordinates.\n+ *\n+ * As other solutions like \\cite DebledRennessonBlurred2005 the\n+ * algorithm given here is based on the height/width computation of\n+ * the convex hull computed from a given set of points. The actual\n+ * implementation exploits the height/width update defined from","path":"src/DGtal/geometry/curves/AlphaThickSegmentComputer.h","position":72,"original_position":72,"commit_id":"db06eaeb5f8e55c15a75acecb9f961febbb0ffad","original_commit_id":"db06eaeb5f8e55c15a75acecb9f961febbb0ffad","user":{"login":"JacquesOlivierLachaud","id":793707,"avatar_url":"https://avatars.githubusercontent.com/u/793707?v=3","gravatar_id":"","url":"https://api.github.com/users/JacquesOlivierLachaud","html_url":"https://github.com/JacquesOlivierLachaud","followers_url":"https://api.github.com/users/JacquesOlivierLachaud/followers","following_url":"https://api.github.com/users/JacquesOlivierLachaud/following{/other_user}","gists_url":"https://api.github.com/users/JacquesOlivierLachaud/gists{/gist_id}","starred_url":"https://api.github.com/users/JacquesOlivierLachaud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacquesOlivierLachaud/subscriptions","organizations_url":"https://api.github.com/users/JacquesOlivierLachaud/orgs","repos_url":"https://api.github.com/users/JacquesOlivierLachaud/repos","events_url":"https://api.github.com/users/JacquesOlivierLachaud/events{/privacy}","received_events_url":"https://api.github.com/users/JacquesOlivierLachaud/received_events","type":"User","site_admin":false},"body":"defined in ...","created_at":"2015-05-18T16:14:59Z","updated_at":"2015-05-18T16:14:59Z","html_url":"https://github.com/DGtal-team/DGtal/pull/963#discussion_r30522468","pull_request_url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963","_links":{"self":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/comments/30522468"},"html":{"href":"https://github.com/DGtal-team/DGtal/pull/963#discussion_r30522468"},"pull_request":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963"}}},"pull_request":{"url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963","id":29885353,"html_url":"https://github.com/DGtal-team/DGtal/pull/963","diff_url":"https://github.com/DGtal-team/DGtal/pull/963.diff","patch_url":"https://github.com/DGtal-team/DGtal/pull/963.patch","issue_url":"https://api.github.com/repos/DGtal-team/DGtal/issues/963","number":963,"state":"open","locked":false,"title":"AlphaThickSegmentComputer","user":{"login":"kerautret","id":772865,"avatar_url":"https://avatars.githubusercontent.com/u/772865?v=3","gravatar_id":"","url":"https://api.github.com/users/kerautret","html_url":"https://github.com/kerautret","followers_url":"https://api.github.com/users/kerautret/followers","following_url":"https://api.github.com/users/kerautret/following{/other_user}","gists_url":"https://api.github.com/users/kerautret/gists{/gist_id}","starred_url":"https://api.github.com/users/kerautret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kerautret/subscriptions","organizations_url":"https://api.github.com/users/kerautret/orgs","repos_url":"https://api.github.com/users/kerautret/repos","events_url":"https://api.github.com/users/kerautret/events{/privacy}","received_events_url":"https://api.github.com/users/kerautret/received_events","type":"User","site_admin":false},"body":"New primitive to handle noisy digital contours (or polygonal contours)\r\nFor now it is only a model of CForwardSegmentComputer but can be useful to upcoming implementation of GMC or meaningful Thickness.\r\n\r\n(Mainly a back port from Imagene from initial Fabien and Alexandre implementation)","created_at":"2015-02-24T10:23:07Z","updated_at":"2015-05-18T16:14:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"22bb525f88a8b2d9cbc332d55441d34d88f40a4b","assignee":null,"milestone":{"url":"https://api.github.com/repos/DGtal-team/DGtal/milestones/9","html_url":"https://github.com/DGtal-team/DGtal/milestones/0.9","labels_url":"https://api.github.com/repos/DGtal-team/DGtal/milestones/9/labels","id":776797,"number":9,"title":"0.9","description":"","creator":{"login":"dcoeurjo","id":700165,"avatar_url":"https://avatars.githubusercontent.com/u/700165?v=3","gravatar_id":"","url":"https://api.github.com/users/dcoeurjo","html_url":"https://github.com/dcoeurjo","followers_url":"https://api.github.com/users/dcoeurjo/followers","following_url":"https://api.github.com/users/dcoeurjo/following{/other_user}","gists_url":"https://api.github.com/users/dcoeurjo/gists{/gist_id}","starred_url":"https://api.github.com/users/dcoeurjo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcoeurjo/subscriptions","organizations_url":"https://api.github.com/users/dcoeurjo/orgs","repos_url":"https://api.github.com/users/dcoeurjo/repos","events_url":"https://api.github.com/users/dcoeurjo/events{/privacy}","received_events_url":"https://api.github.com/users/dcoeurjo/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":12,"state":"open","created_at":"2014-09-03T13:26:56Z","updated_at":"2015-04-07T11:47:33Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963/commits","review_comments_url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963/comments","review_comment_url":"https://api.github.com/repos/DGtal-team/DGtal/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DGtal-team/DGtal/issues/963/comments","statuses_url":"https://api.github.com/repos/DGtal-team/DGtal/statuses/db06eaeb5f8e55c15a75acecb9f961febbb0ffad","head":{"label":"kerautret:BlurredSegmentsBackPort","ref":"BlurredSegmentsBackPort","sha":"db06eaeb5f8e55c15a75acecb9f961febbb0ffad","user":{"login":"kerautret","id":772865,"avatar_url":"https://avatars.githubusercontent.com/u/772865?v=3","gravatar_id":"","url":"https://api.github.com/users/kerautret","html_url":"https://github.com/kerautret","followers_url":"https://api.github.com/users/kerautret/followers","following_url":"https://api.github.com/users/kerautret/following{/other_user}","gists_url":"https://api.github.com/users/kerautret/gists{/gist_id}","starred_url":"https://api.github.com/users/kerautret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kerautret/subscriptions","organizations_url":"https://api.github.com/users/kerautret/orgs","repos_url":"https://api.github.com/users/kerautret/repos","events_url":"https://api.github.com/users/kerautret/events{/privacy}","received_events_url":"https://api.github.com/users/kerautret/received_events","type":"User","site_admin":false},"repo":{"id":1760445,"name":"DGtal","full_name":"kerautret/DGtal","owner":{"login":"kerautret","id":772865,"avatar_url":"https://avatars.githubusercontent.com/u/772865?v=3","gravatar_id":"","url":"https://api.github.com/users/kerautret","html_url":"https://github.com/kerautret","followers_url":"https://api.github.com/users/kerautret/followers","following_url":"https://api.github.com/users/kerautret/following{/other_user}","gists_url":"https://api.github.com/users/kerautret/gists{/gist_id}","starred_url":"https://api.github.com/users/kerautret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kerautret/subscriptions","organizations_url":"https://api.github.com/users/kerautret/orgs","repos_url":"https://api.github.com/users/kerautret/repos","events_url":"https://api.github.com/users/kerautret/events{/privacy}","received_events_url":"https://api.github.com/users/kerautret/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kerautret/DGtal","description":"Digital Geometry Tools and Algorithm Library","fork":true,"url":"https://api.github.com/repos/kerautret/DGtal","forks_url":"https://api.github.com/repos/kerautret/DGtal/forks","keys_url":"https://api.github.com/repos/kerautret/DGtal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kerautret/DGtal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kerautret/DGtal/teams","hooks_url":"https://api.github.com/repos/kerautret/DGtal/hooks","issue_events_url":"https://api.github.com/repos/kerautret/DGtal/issues/events{/number}","events_url":"https://api.github.com/repos/kerautret/DGtal/events","assignees_url":"https://api.github.com/repos/kerautret/DGtal/assignees{/user}","branches_url":"https://api.github.com/repos/kerautret/DGtal/branches{/branch}","tags_url":"https://api.github.com/repos/kerautret/DGtal/tags","blobs_url":"https://api.github.com/repos/kerautret/DGtal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kerautret/DGtal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kerautret/DGtal/git/refs{/sha}","trees_url":"https://api.github.com/repos/kerautret/DGtal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kerautret/DGtal/statuses/{sha}","languages_url":"https://api.github.com/repos/kerautret/DGtal/languages","stargazers_url":"https://api.github.com/repos/kerautret/DGtal/stargazers","contributors_url":"https://api.github.com/repos/kerautret/DGtal/contributors","subscribers_url":"https://api.github.com/repos/kerautret/DGtal/subscribers","subscription_url":"https://api.github.com/repos/kerautret/DGtal/subscription","commits_url":"https://api.github.com/repos/kerautret/DGtal/commits{/sha}","git_commits_url":"https://api.github.com/repos/kerautret/DGtal/git/commits{/sha}","comments_url":"https://api.github.com/repos/kerautret/DGtal/comments{/number}","issue_comment_url":"https://api.github.com/repos/kerautret/DGtal/issues/comments{/number}","contents_url":"https://api.github.com/repos/kerautret/DGtal/contents/{+path}","compare_url":"https://api.github.com/repos/kerautret/DGtal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kerautret/DGtal/merges","archive_url":"https://api.github.com/repos/kerautret/DGtal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kerautret/DGtal/downloads","issues_url":"https://api.github.com/repos/kerautret/DGtal/issues{/number}","pulls_url":"https://api.github.com/repos/kerautret/DGtal/pulls{/number}","milestones_url":"https://api.github.com/repos/kerautret/DGtal/milestones{/number}","notifications_url":"https://api.github.com/repos/kerautret/DGtal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kerautret/DGtal/labels{/name}","releases_url":"https://api.github.com/repos/kerautret/DGtal/releases{/id}","created_at":"2011-05-17T11:37:44Z","updated_at":"2015-03-30T21:22:32Z","pushed_at":"2015-05-14T09:51:45Z","git_url":"git://github.com/kerautret/DGtal.git","ssh_url":"git@github.com:kerautret/DGtal.git","clone_url":"https://github.com/kerautret/DGtal.git","svn_url":"https://github.com/kerautret/DGtal","homepage":"http://liris.cnrs.fr/dgtal","size":126853,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"DGtal-team:master","ref":"master","sha":"224387c0c8cb14c876cb5ef1e259e9d9e62a9dba","user":{"login":"DGtal-team","id":1013900,"avatar_url":"https://avatars.githubusercontent.com/u/1013900?v=3","gravatar_id":"","url":"https://api.github.com/users/DGtal-team","html_url":"https://github.com/DGtal-team","followers_url":"https://api.github.com/users/DGtal-team/followers","following_url":"https://api.github.com/users/DGtal-team/following{/other_user}","gists_url":"https://api.github.com/users/DGtal-team/gists{/gist_id}","starred_url":"https://api.github.com/users/DGtal-team/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DGtal-team/subscriptions","organizations_url":"https://api.github.com/users/DGtal-team/orgs","repos_url":"https://api.github.com/users/DGtal-team/repos","events_url":"https://api.github.com/users/DGtal-team/events{/privacy}","received_events_url":"https://api.github.com/users/DGtal-team/received_events","type":"Organization","site_admin":false},"repo":{"id":1709095,"name":"DGtal","full_name":"DGtal-team/DGtal","owner":{"login":"DGtal-team","id":1013900,"avatar_url":"https://avatars.githubusercontent.com/u/1013900?v=3","gravatar_id":"","url":"https://api.github.com/users/DGtal-team","html_url":"https://github.com/DGtal-team","followers_url":"https://api.github.com/users/DGtal-team/followers","following_url":"https://api.github.com/users/DGtal-team/following{/other_user}","gists_url":"https://api.github.com/users/DGtal-team/gists{/gist_id}","starred_url":"https://api.github.com/users/DGtal-team/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DGtal-team/subscriptions","organizations_url":"https://api.github.com/users/DGtal-team/orgs","repos_url":"https://api.github.com/users/DGtal-team/repos","events_url":"https://api.github.com/users/DGtal-team/events{/privacy}","received_events_url":"https://api.github.com/users/DGtal-team/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DGtal-team/DGtal","description":"Digital Geometry Tools and Algorithm Library","fork":false,"url":"https://api.github.com/repos/DGtal-team/DGtal","forks_url":"https://api.github.com/repos/DGtal-team/DGtal/forks","keys_url":"https://api.github.com/repos/DGtal-team/DGtal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DGtal-team/DGtal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DGtal-team/DGtal/teams","hooks_url":"https://api.github.com/repos/DGtal-team/DGtal/hooks","issue_events_url":"https://api.github.com/repos/DGtal-team/DGtal/issues/events{/number}","events_url":"https://api.github.com/repos/DGtal-team/DGtal/events","assignees_url":"https://api.github.com/repos/DGtal-team/DGtal/assignees{/user}","branches_url":"https://api.github.com/repos/DGtal-team/DGtal/branches{/branch}","tags_url":"https://api.github.com/repos/DGtal-team/DGtal/tags","blobs_url":"https://api.github.com/repos/DGtal-team/DGtal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DGtal-team/DGtal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DGtal-team/DGtal/git/refs{/sha}","trees_url":"https://api.github.com/repos/DGtal-team/DGtal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DGtal-team/DGtal/statuses/{sha}","languages_url":"https://api.github.com/repos/DGtal-team/DGtal/languages","stargazers_url":"https://api.github.com/repos/DGtal-team/DGtal/stargazers","contributors_url":"https://api.github.com/repos/DGtal-team/DGtal/contributors","subscribers_url":"https://api.github.com/repos/DGtal-team/DGtal/subscribers","subscription_url":"https://api.github.com/repos/DGtal-team/DGtal/subscription","commits_url":"https://api.github.com/repos/DGtal-team/DGtal/commits{/sha}","git_commits_url":"https://api.github.com/repos/DGtal-team/DGtal/git/commits{/sha}","comments_url":"https://api.github.com/repos/DGtal-team/DGtal/comments{/number}","issue_comment_url":"https://api.github.com/repos/DGtal-team/DGtal/issues/comments{/number}","contents_url":"https://api.github.com/repos/DGtal-team/DGtal/contents/{+path}","compare_url":"https://api.github.com/repos/DGtal-team/DGtal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DGtal-team/DGtal/merges","archive_url":"https://api.github.com/repos/DGtal-team/DGtal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DGtal-team/DGtal/downloads","issues_url":"https://api.github.com/repos/DGtal-team/DGtal/issues{/number}","pulls_url":"https://api.github.com/repos/DGtal-team/DGtal/pulls{/number}","milestones_url":"https://api.github.com/repos/DGtal-team/DGtal/milestones{/number}","notifications_url":"https://api.github.com/repos/DGtal-team/DGtal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DGtal-team/DGtal/labels{/name}","releases_url":"https://api.github.com/repos/DGtal-team/DGtal/releases{/id}","created_at":"2011-05-06T00:20:52Z","updated_at":"2015-05-07T12:22:06Z","pushed_at":"2015-05-18T16:10:46Z","git_url":"git://github.com/DGtal-team/DGtal.git","ssh_url":"git@github.com:DGtal-team/DGtal.git","clone_url":"https://github.com/DGtal-team/DGtal.git","svn_url":"https://github.com/DGtal-team/DGtal","homepage":"http://dgtal.org","size":197504,"stargazers_count":29,"watchers_count":29,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":38,"mirror_url":null,"open_issues_count":43,"forks":38,"open_issues":43,"watchers":29,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963"},"html":{"href":"https://github.com/DGtal-team/DGtal/pull/963"},"issue":{"href":"https://api.github.com/repos/DGtal-team/DGtal/issues/963"},"comments":{"href":"https://api.github.com/repos/DGtal-team/DGtal/issues/963/comments"},"review_comments":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963/comments"},"review_comment":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DGtal-team/DGtal/pulls/963/commits"},"statuses":{"href":"https://api.github.com/repos/DGtal-team/DGtal/statuses/db06eaeb5f8e55c15a75acecb9f961febbb0ffad"}}}}