News for hackers. Stuff that matters.
Re:3D scatterplot of an image by thechao on Friday December 15, 2017 @09:17AM (#15931912)
In the late '90s I was asked to do image segmentation of multispectral data of brightfield microscope data. That is, given a picture of a bunch of cells, find all of the cells. There were two problems: image segmentation of sick cells is really hard (they're very blobby & fragmented), and the computer I had available took more than 20 minutes per image.

It was literally both cheaper and faster to have a grad student count the cells.

Let's be clear though: the researchers weren't interested in the cells; they were interested in having a pretty-darn-good count of cancerous cells vs. non-cancerous cells. Turns out, cancerous cells were a different color (brighter blue * brighter green) than healthy cells. So, instead, I just converted every image into RGB 3D space, counted all the pixels near 'dark green * dark blue', all the pixels near 'bright green * bright blue' then divided by the average area (in pixels) of each type of cell. The resulting counts were within 1% of the value the grad students could get, and the ratio was even more accurate.

We could get the cell count in a single linear, forward pass, as fast as the camera could take pictures.

Re:3D scatterplot of an image by nitrogen on Friday December 15, 2017 @01:00PM (#15933669)
Sounds a lot like the simplifications I made to be able to process 3D Kinect data at near full speed on an ARM CPU with no FPU.

Instead of trying to segment objects, remove backgrounds, do skeleton tracking, etc., just count pixels that fall within a 3D bounding volume.

Simple solutions are sometimes underappreciated. It helps, as you allude to after "let's be clear," to know what problem you really are trying to solve.

Re:3D scatterplot of an image by tovacinni on Friday December 15, 2017 @02:11PM (#15934209)
Sorry if this is a stupid question, but can't you do this without converting the image into an RGB 3D space? (i.e. iterate through the pixels and count the ones within a certain range of what you want)
Re:3D scatterplot of an image by kmill on Friday December 15, 2017 @07:07PM (#15936411)
You don't have to actually reify the conversion (as in, create a data structure that holds the new representation in memory). When they say that they converted the image into RGB 3D space, it was probably mainly conceptually, to give meaning to "nearness." I'd guess the only data they kept track of as the image streamed off the camera were two integer counts.

I wish I had more examples of algorithms where it is best explained as acting on a data structure that is not actually present, but all I can think of right now is using generators to represent a list.

Re:3D scatterplot of an image by infinite8s on Friday December 15, 2017 @03:28PM (#15934802)
How would you determine if they were within the range? That's effectively converting it into a 3D space.
Re:3D scatterplot of an image by thechao on Friday December 15, 2017 @07:54PM (#15936638)
A few plane equation evaluations—then a few ands, and a sum. Plenty of horsepower on a pentium pro to do that.
Re:3D scatterplot of an image by infinite8s on Wednesday December 20, 2017 @10:21AM (#15970272)
Those plane equations are describing the pixel in 3D space.
Re:3D scatterplot of an image by the_cat_kittles on Friday December 15, 2017 @01:18PM (#15933817)
i love these kinds of problems, because it seems like there is often a really simple solution like that. just finding something different in a very simple feature like color, or shape, or size, or location. there is a reason our brains pay attention to these kinds of things!