You are on page 1of 25

PROJECT REPORT

----- COLLEGE LOGO HERE------

Submitted by

NAMEs [Reg. Nos]


in the partial fulfillment for the award of the degree of

BACHELOR OF ENGINEERING
in Department Name Here XXXXXXX COLLEGE OF ENGINEERING
ANNA UNIVERSITY CHENNAI 600 025 APRIL 2010

ANNA UNIVERSITY
CHENNAI-600025

XXXXXXX COLLEGE OF ENGINEERING

DEPARTMENT OF

Department Name Here XXXXXXX NAGAR, OLD MAMMALAPURAM ROAD,


CHENNAI-600119. ----- COLLEGE LOGO HERE------

BONAFIDE CERTIFICATE

Certified that this project report TITLE is the bonafide work of XXXX (7777777), ZZZZZZZZZZZZ (0000000000) who carried out the project work under my supervision.

SIGNATURE

SIGNATURE

HEAD OF THE DEPARTMENT Submitted for the examination held on.. INTERNAL EXAMINER

SUPERVISOR

EXTERNAL EXAMINER

Completion Certificate

ACKNOWLEDGEMENT

We are very much indebted to our Chairman, Thiru. XXXXXXXXXX M.A., B.L, the Secretary Thiru. XXXXXXXX, Directors Thiru XXXXXX, and Mrs. XXXXXX., Principal XXXXXXX, Head of the Department Mr. XXXXXXX, and faculty of the Computer Science & Engineering Department for providing us an excellent infrastructure and valuable resources for carrying out this project. We wish to thank our Project Co-coordinator XXXXXX for guiding us to take up this project and for her enthusiasm shown towards this project. Her efforts in establishing methodical work routine have lead to the successful completion of this project. We are extremely thankful to our External guide XXXXXX of XXXXXXXX for providing us valuable guidance and useful suggestions for constant improvement of this project work. We wish to acknowledge our thanks to our parents, our friends and other well wishers who helped us to complete this work successfully.

TABLE OF CONTENTS CHAPTER NO TITLE


ABSTRACT LIST OF FIGURES LIST OF ABBREVATIONS

PAGE NO

INTRODUCTION 1.1 purpose of the system 1.2 scope of the system 1.3 objective and success criteria

SYSTEM ANALYSIS 2.1 overview 2.2 existing system

2.3 proposed system 3


SYSTEM REQURIMENTS 3.1hardware specification 3.2 software specification 3.3 software and technologies description

SYSTEM DESIGN 4.1 Design Overview 4.2 System Architecture 4.3 Use case diagram

MODULE DESCRIPTION 5.1 Variational framework for joint segmentation and bias field estimation

5.2 Level set formulation and energy minimization

SYSTEM TESTING 6.1 Unit Testing 6.2 Integration Testing 6.3 Acceptance Testing

7 8 9

SYSTEM IMPLEMENTATION CONCLUSION & FUTURE SCOPE APPENDICES APPENDICES 1: SCREEN SHOTS APPENDICES 2: CODE

10

BIBLIOGRAPHY

LIST OF FIGURES

FIGURE 1- MR IMAGES FIGURE 2- SYSTEM ARCHITECTURE FIGURE 3 - USE CASE DIAGRAM FIGURE 4 JAVA TECHNOLOGY

ABSTRACT

1. INTRODUCTION 1.1 ABSTRACT

Digital watermarking is a process of embedding marks which are typically invisible and that can be extracted only by owners authentication. The system, when the project delivers, contains the techniques to be used with the image that cannot be misused by the unauthorized users. The LSB is not only allow one do it without much distortion, with a much better Stegnoimage quality& in a reliable and secured manner guaranteeing efficient retrievals of secret file. Digital Watermarking finds wide application in security, authentication, copyright protection and all walks of Internet application. There has been effective growth in developing techniques to discourage the unauthorized duplication of data and applications. The

watermarking technique is one which is feasible to design to protect data and also application. The term cover is used to describe the original message in which it will hide our secret message, data file, image or image file. Once it embbed our secret file into the cover, the new image is known as the stegno image. A generic steganographic system, or stegno system, works thusly. A secret message is embedded into the cover data using some sort of embedding algorithm like LSB algorithm.

1.2 PROBLEM DEFINITION The main objective of this project is to reduce the unauthorized duplication of data and application. Provide security, authentication, and copyright protections to all walks of Internet applications. The system, which the project delivers, contains the techniques to be used with the images that cannot be misused by unauthorized users. This Project is to provide the security for images by using key concepts. This project uses the LSB algorithm for file hiding and file extraction.

CHAPTER 2 SYSTEM ANALYSIS

2. SYSTEM ANALYSIS
2.1 NEED FOR THE SYSTEM Requirements analysis is done in order to understand the problem the software system has to solve. The emphasis in requirement analysis is on identifying what is needed from the system, and not how the system will achieve its goals. The developer usually does not understand the clients problem domain, and the client does not understand the issues involved in software systems. This causes the communication gap, which has to be adequately bridged during requirement analysis. The goal of the requirement specification phase is to produce the software requirements specification document (Also called the requirements document). The person responsible for the requirements analysis is often called the analyst.

There are two major activities in this phase: Problem Understanding or analysis and requirement specification. In problem analysis, the analyst has to understand the problem and its context. Such analysis typically requires a thorough understanding of the existing system, parts of which have to be automated. The goal of this activity is to understand the requirements of the new system that is to be developed. Once the problem is analyzed and the essentials understood, the requirements must be specified in the requirement specification document. The requirements document must specify all functional and performance requirements; the format of inputs and outputs; and all design constraints. A preliminary user manual that describes the entire major user interfaces frequently forms a part of the requirements documents. System analysis is a detailed study of various operations performed by as system and their relationship within and outside the system. The main aspect of analysis is defining the boundaries of the system and determining whether or not the candidate system should consider other related system.

Asking Getting Information from the existing system Prototyping

2.2 EXISTING SYSTEM ARCHITECTURE

The most widely used methods is encryption, which takes data and mixes it up with an algorithm and a key to output unreadable data. The receiver then must also have a key to decrypt the data in order to read it. Another form of data hiding is encryptions cousin steganography. Steganography is the act of hiding data inside other data.

2.3 PROPOSED SYSTEM ARCHITECTURE This Project is to provide the security for images by using key concepts. In future we would like to implement steganography using audio and video files. A major advantage of the LSB algorithm is it is quick and easy. The project that is implemented deals with digital images acting as a cover medium to store secret data in such a manner that becomes undetectable.

4.2 DATA MODEL

4.2.1 LOGICAL DATA DESIGN

PROCESS: Embedding and extraction algorithm

Choose the original image

Choose the secret Image or data file

Embedded file send

Target place

Duplicate image

Figure 4.2.1 Logical data design

4.3 PROCESS MODEL

4.3.1 USE CASE DIAGRAM It describes the uses of the system and shows the courses of events that can be performed. It identify the use of the system and therefore the systems responsibilities. It is a special flow of events through the systems.

Authentication extends extends

extends Message Embedding extends extends

extends Secred Code

Top Package::Source

Receive Original Image

Top Package::Destination

Figure 4.3.1:Use case Diagram

4.3.2 SEQUENCE DIAGRAM

Source

Process

Target Place

message Embedding

message Decoding secred code is failed()

Figure 4.3.2: Sequence Diagram 4.3.3 DATA FLOW DIAGRAM

A DFD describes what data flow rather than how they are processed, so it does not depend on hardware, software, and data structure or file organization. The DFD methodology is quite effective, especially when the required design is unclear and the user and the analyst need a notational language for communication. The DFD is easy to understand after a brief orientation. To construct a Data Flow Diagram, we use Arrow Circles Open End Box Squares

An arrow identifies the data flow in motion. It is a pipeline through which information is flown like the rectangle in the flowchart. A circle stands for process that converts data into information. An open-ended box represents a data store, data at rest or a temporary repository of data. A square defines a source or destination of system data.

LEVEL 1:

Input for Login

Process the Authentication

Data Base

No Yes

File Transfer using Steganography

Figure 4.3.3: Data flow diagram (LEVEL-1)

This module represents an individual who uses a computer. This includes expert programmers as well as novices. An end user is any individual who runs an application program. It is one of the authentications for this Project.

LEVEL 2:

Start

Input for Login

Process the Authentication

Data Base

No Yes

Choose the picture for message Embedding

Embedding the Information Stop

Process

Receive the Original Message

Target place

Decoding

Figure 4.3.3: Data flow diagram (LEVEL-2)

3TECHNOLOGY DESCRIPTION:
Java Technology Java technology is both a programming language and a platform.

The Java Programming Language The Java programming language is a high-level language that can be characterized by all of the following buzzwords:

Simple Architecture neutral Object oriented Portable Distributed High performance Interpreted Multithreaded Robust Dynamic Secure

With most programming languages, you either compile or interpret a program so that you can run it on your computer. The Java programming language is unusual in that a program is both compiled and interpreted. With the compiler, first you translate a program into an intermediate language called Java byte codes the platform-independent codes interpreted by the interpreter on the Java platform. The interpreter parses and runs each Java byte code instruction on the computer. Compilation happens just once; interpretation occurs each time the program is executed. The following figure illustrates how this works.

Fig 2 JAVA working Models You can think of Java bytecodes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether its a development tool or a Web browser that can run applets, is an implementation of the Java VM. Java bytecodes help make write once, run anywhere possible. You can compile your program into bytecodes on any platform that has a Java compiler. The bytecodes can then be run on any implementation of the Java VM. That means that as long as a computer has a Java VM, the same program written in the Java programming language can run on Windows 2000, a Solaris workstation, or on an iMac.

Fig 3 JAVA platform Independent The Java Platform A platform is the hardware or software environment in which a program runs. Weve already mentioned some of the most popular platforms like Windows 2000, Linux, Solaris, and MacOS. Most platforms can be described as a combination of the operating system and hardware. The Java platform differs from most other platforms in that its a software-only platform that runs on top of other hardware-based platforms. The Java platform has two components:

The Java Virtual Machine (Java VM) The Java Application Programming Interface (Java API)

Youve already been introduced to the Java VM. Its the base for the Java platform and is ported onto various hardware-based platforms. The Java API is a large collection of ready-made software components that provide many useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped into libraries of related classes and interfaces; these libraries are known as packages. The next section, What Can Java Technology Do?, highlights what functionality some of the packages in the Java API provide. The following figure depicts a program thats running on the Java platform. As the figure shows, the Java API and the virtual machine insulate the program from the hardware.

Native code is code that after you compile it, the compiled code runs on a specific hardware platform. As a platform-independent environment, the Java platform can be a bit slower than native code. However, smart compilers, well-tuned interpreters, and justin-time bytecode compilers can bring performance close to that of native code without threatening portability. What Can Java Technology Do? The most common types of programs written in the Java programming language are applets and applications. If youve surfed the Web, youre probably already familiar with applets. An applet is a program that adheres to certain conventions that allow it to run within a Java-enabled browser. However, the Java programming language is not just for writing cute, entertaining applets for the Web. The general-purpose, high-level Java programming language is also a powerful software platform. Using the generous API, you can write many types of programs. An application is a standalone program that runs directly on the Java platform. A special kind of application known as a server serves and supports clients on a network. Examples of servers are Web servers, proxy servers, mail servers, and print servers. Another specialized program is a servlet. A servlet can almost be thought of as an applet that runs on the server side. Java Servlets are a popular choice for building interactive web applications, replacing the use of CGI scripts. Servlets are similar to applets in that they are runtime extensions of applications. Instead of working in browsers, though, servlets run within Java Web servers, configuring or tailoring the server. How does the API support all these kinds of programs? It does so with packages of software components that provide a wide range of functionality. Every full implementation of the Java platform gives you the following features:

The essentials: Objects, strings, threads, numbers, input and output, data structures, system properties, date and time, and so on.

Applets: The set of conventions used by applets. Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram Protocol) sockets, and IP (Internet Protocol) addresses.

Internationalization: Help for writing programs that can be localized for users worldwide. Programs can automatically adapt to specific locales and be displayed in the appropriate language.

Security: Both low level and high level, including electronic signatures, public and private key management, access control, and certificates. Software components: Known as JavaBeansTM, can plug into existing component architectures.

Object serialization: Allows lightweight persistence and communication via Remote Method Invocation (RMI). Java Database Connectivity (JDBCTM): Provides uniform access to a wide range of relational databases.

The Java platform also has APIs for 2D and 3D graphics, accessibility, servers, collaboration, telephony, speech, animation, and more. The following figure depicts what is included in the Java 2 SDK.

How Will Java Technology Change My Life? We cant promise you fame, fortune, or even a job if you learn the Java programming language. Still, it is likely to make your programs better and requires less effort than other languages. We believe that Java technology will help you do the following:

Get started quickly: Although the Java programming language is a powerful object-oriented language, its easy to learn, especially for programmers already familiar with C or C++.

Write less code: Comparisons of program metrics (class counts, method counts, and so on) suggest that a program written in the Java programming language can be four times smaller than the same program in C++.

Write better code: The Java programming language encourages good coding practices, and its garbage collection helps you avoid memory leaks. Its object orientation, its JavaBeans component architecture, and its wide-ranging, easily extendible API let you reuse other peoples tested code and introduce fewer bugs.

Develop programs more quickly: Your development time may be as much as twice as fast versus writing the same program in C++. Why? You write fewer lines of code and it is a simpler programming language than C++.

Avoid platform dependencies with 100% Pure Java: You can keep your program portable by avoiding the use of libraries written in other languages. The 100% Pure JavaTM Product Certification Program has a repository of historical process manuals, white papers, brochures, and similar materials online.

Write once, run anywhere: Because 100% Pure Java programs are compiled into machine-independent bytecodes, they run consistently on any Java platform.

Distribute software more easily: You can upgrade applets easily from a central server. Applets take advantage of the feature of allowing new classes to be loaded on the fly, without recompiling the entire program.

INTRODUCTION TO SWING:
Swing contains all the components. Its a big library, but its designed to have appropriate complexity for the task at hand if something is simple, you dont have to write much code but as you try to do more your code becomes increasingly complex. This means an easy entry point, but youve got the power if you need it. Swing has great depth. This section does not attempt to be comprehensive, but instead introduces the power and simplicity of Swing to get you started using the library. Please be aware that what you see here is intended to be simple. If you need to do more, then Swing can probably give you what you want if youre willing to do the research by hunting through the online documentation from Sun.

BENEFITS OF SWING: Swing components are Beans, so they can be used in any development environment that supports Beans. Swing provides a full set of UI components. For speed, all the components are lightweight and Swing is written entirely in Java for portability. Swing could be called orthogonality of use; that is, once you pick up the general ideas about the library you can apply them everywhere. Primarily because of the beans naming conventions. Keyboard navigation is automatic you can use a Swing application without the mouse, but you dont have to do any extra programming. Scrolling support is effortless you simply wrap your component in a JScroll Pane as you add it to your form. Other features such as tool tips typically require a single line of code to implement. Swing also supports something called pluggable look and feel, which means that the appearance of the UI can be dynamically changed to suit the expectations of users working under different platforms and operating systems. Its even possible to invent your own look and feel.

You might also like