036570daae419f41d4b1bf51bf82a8d9ffd14be6 updated datacontext to reflect new tables. New tables specify which plants belong to a photo tour and how to extract the plant images out of each photo of the trip data
dd09d4da2ee7aebc9375e222b83179559628c2d7 added some api
32041b5c1f09d937a7d330f9adc4b6ded709efe5 movement plan update should also update the name of the movementplan
6ec7471cf396ff5061de7d02f9e5ec018879a22d the ir image might not be correctly aligned with the vis image for every plant position.
Introducing another offset to correct the perspective errors
2191e51940a780e90404fc6d6993a83595185531 basic showing of images works now for trips of a given photo tour.
4857cce8958b40c9e3ebb09d33ddae0ca5d68d70 image cutter is now able to render images properly on canvas.
We need canvas to support drawing of lines for storing polygons of the plant cutting
5b0b3bd29a8aed8ee127166cf9ccfecad5615256 it is now possible to draw polygons on the canvas on the frontend
9451c610898374e73b2d5d59ea13a327684317ce added a funciton to crop a section from an image
d681383847ece0f9533822aa5f0c7d70b0869980 QR-Code reading is not an easy implementation, see #144
Plants can now be added to a photo tour individually.
Later a batch import should be implemented
4d2e12fde24dd78fe01d0fa69bafae5bdefb29fc polygons can now be added and removed from a given picture.
Plants can be added and removed. A given plant may define a plantextraction template. Those templates are only applicable, when not another template overrides the previous one. Order is defined after referenced PhotoTripTime of the extraction template
c29be3746e207490060fe124b0abb3d1eb954ace the most recent polygon for the given plant is now shown
0b82d38b569808899c050a2ffe07e372a559010e all plants can now be selected to draw all applicable plant on the image
bbcd8b1e82f9d9da9ba7237a178f31976d593bc3 added a failing test to test cropping of images along polygon points
3fd70a7a80776baf55cd019fb5ce3b6d49273fd8 cropping works now properly with the local test image - but only as a rectangle. It should be a proper polygon crop in the end
75ec158ab9c7500ad510358fd79e12cc295e7714 added a method which crops a given image via opencv along a given polygon
e8448671012e309907ac9f64b69eaa229695aa24 naive implementation of the workflow to create a virtual image.
The cropped images must be extracted and distributed on the virtual image according to the plant definition.
Even if an image is missing, there should be an empty image. The positions of all other plants must remain the same for an easier segmentation workflow.
For the same reason the maximum bounding box is searched. Always the biggest box is used to create the virtual image
8d4426b0554b97d6d80a28ac58f3cd3650d83fc2 During the image cropping the ir image must be scaled to the cropped vis image and contain the temperature values at the corresponding positions.
The crop positions are stored relative to the vis image. This means the vis image must also be supplied as a paramter to calculate the corresponding crop coordinates of the ir image.
7368c6ba515d2a70ddca3fb180d7c52d22515dd9 cropping works now correctly and another image with colors is now stored in the result list, which is then stitched together
834c896f43166e54b1140c3b4db4ca5a2b259eb4 the global offset is now stored when saving a polygon --> more fine granular control must be added later
5de8a6c4edb1897e63ffc722220683167d7ace0e trying to get copying an image to another image to work in opencv....
347fcfe7e0b2035b81bb1402b170e0c259697adf virtual images are now created properly
341f31e54fde6a858c9e88c5a4225bcfafc9e297 virtual image dimensions are now calculated based on the desired image size to match a 16/9 format as closely as possible
0628656593f1c59938d4860cf4619f42aa3bdf7c metadata is now exported aswell as a tsv formatted string
79cf528beafd557264c4f4ddb7f09f439a0d0c34 creation of virtual images should now work.
Virtual images are packed into a zip file with 3 images:
VIS image as png,
IR color image as png,
IR Raw data as pseudo png. First channel are whole °C and second channel decimal digits, third channel is zero.
The zip file contains also a metadata tsv file with descriptions of positions and names of the plants.
83317d4fef5f556836b5ce3b1003abb2e63a970f fixed a bug, which caused random conversions of the fullValueMat to 255. Less conversions solve the issue
df03e48d219d7ba27042a77975365cfedde8c311 adding of as much meta data as possible to the metadata table for each run.
Temperatures and exact timestamps are a great addition
d2028dff9615329634cdb04ed1f3385e4483b1d7 timestamps of files must be parsed as utc, else they cannot be used to query the database
51062c6045324148c041f832bdb1661191b32e8d added button to recalculate virtual image and fixed minor issues
de0504d5c2df3775387e5bf4dd73c7d401bfcbeb sometimes the calculation of the raw ir image fails. a channel consists in that case mostly of 255.
Seems to be an underlying issue of the EMGU library, as it is not reproducible. It appears at random times.
Adding a sanity check the result to recalculate if necessary.
It looks then like this:
[19:06:25 WRN] decimal channel was over 100: 0-255
[19:06:25 WRN] decimal channel was over 100: 0-255
[19:06:25 WRN] decimal channel was over 100: 255-255
[19:06:25 WRN] decimal channel was over 100: 255-255
[19:06:25 WRN] decimal channel was over 100: 255-255
[19:06:25 WRN] decimal channel was over 100: 255-255
[19:06:25 WRN] decimal channel was over 100: 255-255
[19:06:25 WRN] decimal channel was over 100: 255-255
Maybe Opencv is not fast enough to release and allocate memory?
4b459c9663045ab70449d7aa294f9d167e411793 better naming for the mats in the raw ir calculation
Commit messages for #117
Adding a sanity check the result to recalculate if necessary.
It looks then like this:
[19:06:25 WRN] decimal channel was over 100: 0-255 [19:06:25 WRN] decimal channel was over 100: 0-255 [19:06:25 WRN] decimal channel was over 100: 255-255 [19:06:25 WRN] decimal channel was over 100: 255-255 [19:06:25 WRN] decimal channel was over 100: 255-255 [19:06:25 WRN] decimal channel was over 100: 255-255 [19:06:25 WRN] decimal channel was over 100: 255-255 [19:06:25 WRN] decimal channel was over 100: 255-255
Maybe Opencv is not fast enough to release and allocate memory?