473,382 Members | 1,389 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,382 software developers and data experts.

This is about edge detection using java

constructing a edge detector using sobel kernels with a discrete convolution algorithm. The result should give a vertical edge image, a horizontal edge image and a gradient image.

Sobel kernels :

[-1 0 1
hx = -2 0 2 and
-1 0 1]

[-1 -2 -1
hy = 0 0 0
1 2 1]

gradeint magnitude and direction:

g = (g2x + g2y) 1/2 and (theta) = tan-1 (gy/gx)

The following code can be used :

Expand|Select|Wrap|Line Numbers
  1. import java.io.*;
  3. public class JPEG1{
  6.     public static void main (String args[]) {
  7.     /* Check that the user has provided the right number of arguments */
  8.     if (args.length != 2) {
  9.         System.out.println("Usage: java JPEGCopy <source JPEG file> " + 
  10.                    "<target JPEG file>");
  11.         System.exit(1);
  12.     }
  14.     /* Create an empty image. We will read an image from a file into
  15.        this object */
  16.     JPEGImage imageOne = new JPEGImage();
  18.     /* Try to open the file. This may cause an exception if the name 
  19.        given is not a valid JPEG file so we need to catch the exceptions */
  20.     try {
  21.         imageOne.read(args[0]);
  22.     } catch (Exception e) {
  23.         /* An exception has been thrown. This is usually because the file
  24.            either does not exist, or is not a JPEG image */
  25.         System.out.println("Error reading file " + args[0]);
  26.         System.out.println(e.getMessage());
  27.         System.exit(1);
  28.     }
  30.     /* Make a new image the same size as the one that was read in */
  31.     JPEGImage imageTwo = new JPEGImage(imageOne.getWidth(),
  32.                        imageOne.getHeight());
  34.     /* Copy the pixel information from image that was read in to the 
  35.        new image */
  36.     for (int x = 0; x < imageOne.getWidth(); x++) {
  37.         for (int y = 0; y < imageOne.getHeight(); y++) {
  38.         /* Get the values from imageOne */
  39.         int red = imageOne.getRed(x,y);
  40.         int green = imageOne.getGreen(x,y);
  41.         int blue = imageOne.getBlue(x,y);
  42.         /* Put these values into imageTwo */
  43.         imageTwo.setRGB(x, y, red, green, blue);
  44.         }
  45.     }
  47.     /* Write the new image out to a file. Again exceptions might occur */
  48.     try {
  49.         imageTwo.write(args[1]);
  50.     } catch (Exception e) {
  51.         System.out.println("Error writing file " + args[1]);
  52.         System.out.println(e.getMessage());
  53.         System.exit(1);
  54.     }
  56.     }
  57. }
Feb 28 '08 #1
0 4893

Sign in to post your reply or Sign up for a free account.

Similar topics

by: Jan Roland Eriksson | last post by:
Archive-name: www/stylesheets/newsgroup-faq Posting-Frequency: once a week Last-modified: 2004-07-26 Version: 2.00 URL: <http://css.nu/faq/ciwas-mFAQ.html> Maintainer: Jan Roland Eriksson...
by: Andrew Thompson | last post by:
This is intended to fix a long standing (cough)Java(cough) problem with which I'm sure some of you will be familiar. Sun recommends using the <OBJECT>/<EMBED> elements to cater for Java...
by: Mickey Segal | last post by:
On comp.lang.java.programmer we are discussing problems created for Java programs by pop-up blockers (in the thread "showDocument blocked by new microsoft pop-up blocker"). Our problem is that...
by: lawrence | last post by:
How is it possible that the question "How do I detect which browser the user has" is missing from this FAQ: http://www.faqts.com/knowledge_base/index.phtml/fid/125 and is only here on this...
by: Vincent | last post by:
Hello everybody, i'm searching a sample of c# implementation of Deriche edge detection. ( if possible, with getpixel/setpixel because i don't use pointer) i tried to adapt c or c++ code but...
by: jesper | last post by:
I would like some feedback on this. A while back I was trying my hand at some pathfinding for a small game I was making. I did not know anything about it so I read some stuff and came up with the...
by: craig | last post by:
I've declared the following as a "vector" of "lists" using STL vector< list<Edge*> > I've tried many ways to add objects to this but can't figure out how to do it. Does anyone have any tips,...
by: a | last post by:
where could i find an edge detection example in C#
by: darrenhello | last post by:
hi there, I am doing my last year's project and I have a 'little' problem. I have to do an edge detection filter. for now, some normal edge detection filters that I used worked fine but there a...
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.