12

I'm pretty sure they're generated on the fly based on a bunch of parameters. You'll note if you Inspect Element that the HTML for the tag includes some code : data-itemcode="BEH-PEN-01" Probably the initial base image to use. In this case, Pendent 01 data-angle="P" Angle probably specifies which version of the image to generate. For example, there are 4 ...


10

I'll assume this is being done on a conventional CPU, one core, executing one simple thread, no fancy hardware. If there is more than that going on, it can probably be accounted for with adjustments to the reasoning for a simpler system. Not much more can be said without either a specific system to discuss, or a whole textbook or research paper to cover a ...


7

After fidgeting around with the code a bit, I've got some better results. I went back to the original paper and ignored the wikipedia page. I've compared the algorithm to other quick select routines with some great results. Ok, here are the methods I have been playing with. Note these are for floating point and also that I changed my method from a void. ...


7

You should submit your requests using a POST, and your service should return a URL that will retrieve the image once it's been processed. If the URL is accessed before the processing is complete, you should return a 202 (ACCEPTED) response. Once processing is complete, you can serve the processed image.


7

I cannot and will not recommend any libs or frameworks for this, but if you are willing to implement a system by yourself, here is a simple outline of what might work: send the image to the server and reduce its resolution to something which can be processed faster send the reduced image back to the client; now implement (or find) some client-side java ...


6

Your problem falls into the 'needs five years and a research team' bucket! As far as I know tesseract doesn't have an option for this; you are just using a library not designing the algorithms! You might be able to hack something together combining .image_to_boxes() and .image_to_data() and some sort of custom .box_is_bold() method that you would have to ...


4

In the specific case in the example they seem to be combining images of the different parts on the server and then sending a complete image to the browser. As can be seen if we take a look at the URL and start removing things so that we get access to the debug page: http://prodimage-725655301.us-east-1.elb.amazonaws.com/image-generator/debug-product-images/?...


4

Relevant XKCD: On the upside, you might be able to degenerate this task into hand-created bounding boxes for each seat. Take each seat and generate a "base line" from a photo that has no people in any seat under normal expected lighting conditions. Then when a picture to record attendance is taken - and assuming no smarty pants moves the camera or plays ...


4

The About Page says: OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and modify the code. In addition, the license is the standard 3-clause BSD license, which is one ...


4

Sure, but why? If you have one red pixel, you can make that four red pixels at a slightly higher resolution or a billion red pixels at a lot higher resolution. The image itself is the same, you're just spending four or a billion times the data to encode it. What you might be asking is if you can take a one pixel picture of me, then make a four pixel image ...


3

Rough outline: scan your image horizontally, pixel-line wise each pixel line eithers contains only black pixels, or some white/yellow pixels: store this information in a boolean array. group the pixel line numbers together, each sequence of non-empty lines and each sequence of empty lines form a group. The non-empty line groups represent the word lines, ...


3

There are couple optimizations that can be done: After retrieving the images from the blobs, cache it into memory, depending on hit frequency. If the amount of images is very important, consider using redis as a L2 cache provider (now available on Azure). If the web server has to support a massive amount of hits, and the images can be publicly available, I ...


3

You basically have two "directions" in which you can scale file system storage: vertically and horizontally. Vertical scaling is basically just making a drive faster. The obvious move here is from single spinning disc to SSD, possibly in a RAID. This lets you create a file system that has higher bandwidth and throughput. Back before SSDs were common, you ...


3

This is commonly called image registration (https://en.wikipedia.org/wiki/Image_registration). You might also look through OpenCV (https://docs.opencv.org/3.4.1/db/d61/group__reg.html) for an actual implementation. This used in processing MRIs to get rid of motion by the patient and I've heard it is used in mask alignment in chip manufacturing (finding and ...


3

is possible - but not very accurate - and also needs to know the actual size of the object being tracked (assuming only AE track) for distance estimation. This might be acceptable if all you want is its getting nearer/or getting farther away and you know the object cannot change size is of course possible if you already have 3d coordinated, the complication ...


3

The ideas of the two commenters is by and large your best bet, because it relies on some kind of normalization, which is the typical way such problems are treated. Because of the "heuristic" nature of the problem you are solving (OCR), noise (of all sorts) can always bring you trouble, so the least you can do is ensure that your input is as close to the "...


2

One way of dealing with this problem is to have a finite state machine with at least three states: not detecting anything detection phase gesture dectected Then you need to carefully design conditions for each state modification (ie going from detection phase back to "not detecting anything" in case of failure) an run them at each frame of your video ...


2

Depending on the scale of your operation (not specified) and the platform you're targeting (not specified) your range of options is very wide. Assuming you're targeting a Unix/Linux platform, the default image processing library for #1 is ImageMagick - http://www.imagemagick.org/script/index.php It's been around for ever and is widely supported on a broad ...


2

You will need some image pattern recognisation or comparing library., You should probably take a look at OpenCV and VLfeat. For instance you can use SIFT to compare images, which also works pretty good on rotated and cropped images (which you don't even need ). VLfeat's SIFT is pretty cool Note: You can also use other algoritms to compare, sift is just ...


2

Isn't this just a regression on (x, y, z)? But it sounds like a regression rather than a classification because you're trying to determine a path -- in other words, (continuous) values of x, y, z close to the measured path, based on initial measurements of the brightness. Alternately, you could train a neural network to identify the path, and produce a "...


2

This is just a quick hash of ideas. I don't have any implementations to share. Best advice: use side-channel information: Relative position (layout) of the image on the page. Look at the scripts attached to that image. Is that clickable (onclick)? Does it have a title? Does it have a title that shares important words with the title of the page? Not-so-...


2

One classic approach is using top hat filtering for leveling uneven illumination. You should perform morphological opening with a large structuring element, then remove the result from the original image. If you have dark objects on light background you should do bottom hat filtering (dual of top hat filtering): subtract the closing with a large structuring ...


2

You're basically reinventing video compression. See e.g this introductory document describing how MPEG-2 does it, or this for MPEG-4/H264. To address a couple of points in your post: The search can be done much more efficiently than a brute-force scan over all possibilities by starting on a coarse grid (or at lower resolution) to get an estimate of the ...


2

Some questions, then a suggestion. Have you tried your code with the same images and masks as the article. Do you get the same results? Did you try switching masks in the original? A quick scan of the source code tells me that this code is not easy to verify. It's not written in a way to ensure correctness, and it's not testable. I thought I found a ...


2

Posting here because this is too long for a comment, but I'm not sure how good of an answer it is. I don't mean to be a Debbie Downer, but you haven't really done anything besides make the image gray-scale and increase contrast. Computer vision is a vastly complex topic -- you can't just write a simple Pythons script. You should start with the fundamentals ...


2

As far as I know, there is not any sort of algorithm to do that. The problem comes that what is offensive here may not be offensive where you live, or vice versa. And there are certainly things that are forbidden in China that other nations wouldn't bat an eyelash at. You could do an image search to see if the imagine is a remastered from some blacklisted ...


2

You can readily apply the k-means algorithm to the RGB image data set. An image data set is in no way special, except that each data vector is three dimensional (R, G and B) and the values are bounded integers in the [0, 255] range. The standard k-means algorithm just needs to compute the distance between two as well as the mean of several data points. For ...


2

First, that is not "high-resolution" but "high-range". Resolution is about width and height. Not about bits per color. You are basically looking for conversion from High Dynamic Range to Small Dynamic Range, which is called Tone Mapping. The problem is, it is always loosy conversion and might not be useful for your case. Another, simpler option is to have ...


2

I'd jump onto stack overflow and search in the OpenCV and image processing areas there. I've used opencv to do something similar. You can do an efficient image difference by running an opencv subtraction across two images. You then turn the output of that step into a monocolour image and count the pixels that are above a threshold value (to account for ...


2

Does this mean I should learn OpenCV in another language first in order to utilize it in Swift? Yes, you should learn it in the context of its native C++, because the value of OpenCV doesn't have much to do with C++, or any programming language, the value is in the mathematical tools it provides. OpenCV at its heart is a toolkit of mathematical functions. ...


Only top voted, non community-wiki answers of a minimum length are eligible