{"action":"created","issue":{"url":"https://api.github.com/repos/CarVac/librtprocess/issues/9","repository_url":"https://api.github.com/repos/CarVac/librtprocess","labels_url":"https://api.github.com/repos/CarVac/librtprocess/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/CarVac/librtprocess/issues/9/comments","events_url":"https://api.github.com/repos/CarVac/librtprocess/issues/9/events","html_url":"https://github.com/CarVac/librtprocess/pull/9","id":359605783,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE1MDU5MTc3","number":9,"title":"Adapted the code to PhotoFlow needs","user":{"login":"aferrero2707","id":6229237,"node_id":"MDQ6VXNlcjYyMjkyMzc=","avatar_url":"https://avatars3.githubusercontent.com/u/6229237?v=4","gravatar_id":"","url":"https://api.github.com/users/aferrero2707","html_url":"https://github.com/aferrero2707","followers_url":"https://api.github.com/users/aferrero2707/followers","following_url":"https://api.github.com/users/aferrero2707/following{/other_user}","gists_url":"https://api.github.com/users/aferrero2707/gists{/gist_id}","starred_url":"https://api.github.com/users/aferrero2707/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aferrero2707/subscriptions","organizations_url":"https://api.github.com/users/aferrero2707/orgs","repos_url":"https://api.github.com/users/aferrero2707/repos","events_url":"https://api.github.com/users/aferrero2707/events{/privacy}","received_events_url":"https://api.github.com/users/aferrero2707/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-09-12T18:45:55Z","updated_at":"2018-09-13T13:11:14Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/CarVac/librtprocess/pulls/9","html_url":"https://github.com/CarVac/librtprocess/pull/9","diff_url":"https://github.com/CarVac/librtprocess/pull/9.diff","patch_url":"https://github.com/CarVac/librtprocess/pull/9.patch"},"body":"I have started to adapt the LibRTProcess code to the peculiar needs of PhotoFlow’s processing pipeline.\r\n\r\nThe good news is that it works, and that the inclusion of the LibRTProcess code was rather easy.\r\nhence, if you plan to add more algorithms to the library I will be very happy!\r\nThe experimental code is in the [rtprocess branch](https://github.com/aferrero2707/PhotoFlow/tree/rtprocess).\r\n\r\nLibRTProcess required some modifications in order to make it compatible with PhotoFlow.\r\nHere is a short description of the changes:\r\n\r\n- Array2D: I have introduced a special constructor that allows to create a pixel matrix that only contains a portion of the entire image, but that can be addressed as if the entire image was available (i.e. using row and column indexes from the top-left corner) This is obtained using some simple pointer arithmetics, however there are for the moment no checks to prevent out-of-bounds accesses.\r\n\r\n- Amaze: I have modified the code such that the “winw” and “winh” parameters really represent the extents of a sub-portion of the entire image. I have the impression that this was also the original idea of the code, but as far as I understand the code should use the total width of the RAW  image, and not the width of the processed window, to handle the boundary conditions. I have tried to fix that in my version\r\n\r\n- CA correction: like in the Amaze case, I need to have the possibility to apply the CA correction to a portion of the entire image, therefore I have introduced some winx/winy/winw/winh parameters like for the Amaze case. The total width and height of the RAW image is directly taken from the rawData object\r\n\r\n- CA correction: I have temporarily disabled a couple of SSE2 optimisations at the end of the routine, just until I am sure I am handling the indexes correctly\r\n\r\nLet me know what you think!"},"comment":{"url":"https://api.github.com/repos/CarVac/librtprocess/issues/comments/421001414","html_url":"https://github.com/CarVac/librtprocess/pull/9#issuecomment-421001414","issue_url":"https://api.github.com/repos/CarVac/librtprocess/issues/9","id":421001414,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTAwMTQxNA==","user":{"login":"heckflosse","id":13733487,"node_id":"MDQ6VXNlcjEzNzMzNDg3","avatar_url":"https://avatars3.githubusercontent.com/u/13733487?v=4","gravatar_id":"","url":"https://api.github.com/users/heckflosse","html_url":"https://github.com/heckflosse","followers_url":"https://api.github.com/users/heckflosse/followers","following_url":"https://api.github.com/users/heckflosse/following{/other_user}","gists_url":"https://api.github.com/users/heckflosse/gists{/gist_id}","starred_url":"https://api.github.com/users/heckflosse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heckflosse/subscriptions","organizations_url":"https://api.github.com/users/heckflosse/orgs","repos_url":"https://api.github.com/users/heckflosse/repos","events_url":"https://api.github.com/users/heckflosse/events{/privacy}","received_events_url":"https://api.github.com/users/heckflosse/received_events","type":"User","site_admin":false},"created_at":"2018-09-13T13:11:14Z","updated_at":"2018-09-13T13:11:14Z","author_association":"CONTRIBUTOR","body":"@CarVac No, you can still pass an array2d<float> or use a similar class if the class has a\r\n\r\n```\r\n    // use as pointer to T**\r\n    operator T**()\r\n    {\r\n        return ptr;\r\n    }\r\n```\r\n"}}
{"actor":{"display_login":"heckflosse"}}