Align the Images properly
Hi I am trying to get the handwritten data only from an image, for that I took a empty image and a filled one and then I am doing ImageChops.difference to get the data out of it.
The problem is right now with the alignment of images, both are not equally aligned in terms of depth, so the results are not correct.
from PIL import Image, ImageChops
def compare_images(path_one, path_two, diff_save_location):
"""
Compares to images and saves a diff image, if there
is a difference
@param: path_one: The path to the first image
@param: path_two: The path to the second image
"""
image_one = Image.open(path_one).convert('LA')
image_two = Image.open(path_two).convert('LA')
diff = ImageChops.difference(image_one, image_two)
if diff.getbbox():
diff.convert('RGB').save(diff_save_location)
if __name__ == '__main__':
compare_images('images/blank.jpg',
'images/filled.jpg',
'images/diff.jpg')
This is the result which I got.
the result which I am looking for:
Can anyone help me with this.
Thanks.
python-3.x image image-processing python-imaging-library
add a comment |
Hi I am trying to get the handwritten data only from an image, for that I took a empty image and a filled one and then I am doing ImageChops.difference to get the data out of it.
The problem is right now with the alignment of images, both are not equally aligned in terms of depth, so the results are not correct.
from PIL import Image, ImageChops
def compare_images(path_one, path_two, diff_save_location):
"""
Compares to images and saves a diff image, if there
is a difference
@param: path_one: The path to the first image
@param: path_two: The path to the second image
"""
image_one = Image.open(path_one).convert('LA')
image_two = Image.open(path_two).convert('LA')
diff = ImageChops.difference(image_one, image_two)
if diff.getbbox():
diff.convert('RGB').save(diff_save_location)
if __name__ == '__main__':
compare_images('images/blank.jpg',
'images/filled.jpg',
'images/diff.jpg')
This is the result which I got.
the result which I am looking for:
Can anyone help me with this.
Thanks.
python-3.x image image-processing python-imaging-library
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
1
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here atORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…
– Mark Setchell
Nov 16 '18 at 9:07
Could you post links to thefilled.jpg
andfilled.jpg
images?
– Cris Luengo
Nov 16 '18 at 18:35
add a comment |
Hi I am trying to get the handwritten data only from an image, for that I took a empty image and a filled one and then I am doing ImageChops.difference to get the data out of it.
The problem is right now with the alignment of images, both are not equally aligned in terms of depth, so the results are not correct.
from PIL import Image, ImageChops
def compare_images(path_one, path_two, diff_save_location):
"""
Compares to images and saves a diff image, if there
is a difference
@param: path_one: The path to the first image
@param: path_two: The path to the second image
"""
image_one = Image.open(path_one).convert('LA')
image_two = Image.open(path_two).convert('LA')
diff = ImageChops.difference(image_one, image_two)
if diff.getbbox():
diff.convert('RGB').save(diff_save_location)
if __name__ == '__main__':
compare_images('images/blank.jpg',
'images/filled.jpg',
'images/diff.jpg')
This is the result which I got.
the result which I am looking for:
Can anyone help me with this.
Thanks.
python-3.x image image-processing python-imaging-library
Hi I am trying to get the handwritten data only from an image, for that I took a empty image and a filled one and then I am doing ImageChops.difference to get the data out of it.
The problem is right now with the alignment of images, both are not equally aligned in terms of depth, so the results are not correct.
from PIL import Image, ImageChops
def compare_images(path_one, path_two, diff_save_location):
"""
Compares to images and saves a diff image, if there
is a difference
@param: path_one: The path to the first image
@param: path_two: The path to the second image
"""
image_one = Image.open(path_one).convert('LA')
image_two = Image.open(path_two).convert('LA')
diff = ImageChops.difference(image_one, image_two)
if diff.getbbox():
diff.convert('RGB').save(diff_save_location)
if __name__ == '__main__':
compare_images('images/blank.jpg',
'images/filled.jpg',
'images/diff.jpg')
This is the result which I got.
the result which I am looking for:
Can anyone help me with this.
Thanks.
python-3.x image image-processing python-imaging-library
python-3.x image image-processing python-imaging-library
asked Nov 16 '18 at 7:12
Sachin SharmaSachin Sharma
419
419
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
1
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here atORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…
– Mark Setchell
Nov 16 '18 at 9:07
Could you post links to thefilled.jpg
andfilled.jpg
images?
– Cris Luengo
Nov 16 '18 at 18:35
add a comment |
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
1
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here atORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…
– Mark Setchell
Nov 16 '18 at 9:07
Could you post links to thefilled.jpg
andfilled.jpg
images?
– Cris Luengo
Nov 16 '18 at 18:35
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
1
1
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here at
ORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…– Mark Setchell
Nov 16 '18 at 9:07
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here at
ORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…– Mark Setchell
Nov 16 '18 at 9:07
Could you post links to the
filled.jpg
and filled.jpg
images?– Cris Luengo
Nov 16 '18 at 18:35
Could you post links to the
filled.jpg
and filled.jpg
images?– Cris Luengo
Nov 16 '18 at 18:35
add a comment |
1 Answer
1
active
oldest
votes
This site may be helpful: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/ . The main idea is to first detect keypoints use SIFT, SURF or other algorithms in both images; then match the keypoints from the empty image with the keypoints from the handwritten image, to get a homography matrix; then use this matrix to align the two images.
After image alignment, post processing may be needed due to illumination or noise.
add a comment |
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333063%2falign-the-images-properly%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This site may be helpful: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/ . The main idea is to first detect keypoints use SIFT, SURF or other algorithms in both images; then match the keypoints from the empty image with the keypoints from the handwritten image, to get a homography matrix; then use this matrix to align the two images.
After image alignment, post processing may be needed due to illumination or noise.
add a comment |
This site may be helpful: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/ . The main idea is to first detect keypoints use SIFT, SURF or other algorithms in both images; then match the keypoints from the empty image with the keypoints from the handwritten image, to get a homography matrix; then use this matrix to align the two images.
After image alignment, post processing may be needed due to illumination or noise.
add a comment |
This site may be helpful: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/ . The main idea is to first detect keypoints use SIFT, SURF or other algorithms in both images; then match the keypoints from the empty image with the keypoints from the handwritten image, to get a homography matrix; then use this matrix to align the two images.
After image alignment, post processing may be needed due to illumination or noise.
This site may be helpful: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/ . The main idea is to first detect keypoints use SIFT, SURF or other algorithms in both images; then match the keypoints from the empty image with the keypoints from the handwritten image, to get a homography matrix; then use this matrix to align the two images.
After image alignment, post processing may be needed due to illumination or noise.
answered Nov 16 '18 at 16:38
Kaiwen ChangKaiwen Chang
6019
6019
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333063%2falign-the-images-properly%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You have some fixed template for the image, this means you have the coordinate information of the handwritten texts, then you can use the coordinate information to crop the handwriiten text areas.
– flamelite
Nov 16 '18 at 7:33
1
The term to search for is "Image Registration". If you look at the grids on the left side of your image you'll see they are much more horizontally displaced from each other than on the right side of the image which means you have "bad stuff" going on as well as normal displacements - e.g. your scan may not be flat. This is beyond Pillow's capabilities and you'll likely need to look to OpenCV. Look here at
ORB
and friends docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/…– Mark Setchell
Nov 16 '18 at 9:07
Could you post links to the
filled.jpg
andfilled.jpg
images?– Cris Luengo
Nov 16 '18 at 18:35