IshitaAgarwal Report Final2024
IshitaAgarwal Report Final2024
Report of
Industrial Training
On
PYTHON PROGRAMMING
Bachelor of Technology
in
Submitted By Guide
Ishita Agarwal DR. Sangita Choudhary
23EJCCS096 Associate Professor, CSE
2024-2025
CERTIFICATE
I
ACADEMIC YEAR
2024-2025
Ii
ACADEMIC YEAR
2024-2025
Iii
ACADEMIC YEAR
2024-2025
Iv
ACADEMIC YEAR
2024-2025
PSO1: Ability to interpret and analyze network specific and cyber security issues in real world
environment.
PSO2: Ability to design and develop mobile and web-based applications under
realistic constraints
V
ACADEMIC YEAR
2024-2025
CO1: Generate the report based on the Projects carried out for demonstrating the
ability to apply the knowledge of engineering field during training
CO2: Demonstrate Competency in relevant engineering fields through problem
identification, formulation and solution.
Vi
ACADEMIC YEAR
2024-2025
ACKNOWLEDGEMENT
It has been a great honour and privilege to undergo training at Centre of Electronic
Governance, Rajasthan. I am very grateful to Mr. Sanam Peeyush for giving their
valuable time and constructive guidance in preparing the report for training. It
would not have been possible to complete this report in short period of time
without their kind encouragement and valuable guidance.
I wish to express our deep sense of gratitude to our Seminar Guide Dr. Sangita
Chaudhary, Jaipur Engineering College and Research Centre, Jaipur for guiding us
from the inception till the completion of the seminar.
We sincerely acknowledge him for giving his valuable guidance, support for
literature survey, critical reviews and comments for our seminar.
I would like to first of all express our thanks to Mr. Arpit Agrawal Director of JECRC,
for providing us such a great infrastructure and environment for our overall
development.
I express sincere thanks to Dr. V. K. Chandna, Principal of JECRC, for his kind
cooperation and extendible support towards the completion of our seminar.
Words are inadequate in offering our thanks to Dr. Sangita Choudhary , HOD of CSE
department, for consistent encouragement and support for shaping our seminar in
the presentable form.
Also our warm thanks to Jaipur Engineering College and Research Centre, who
provided us this opportunity to carryout, this prestigious seminar and enhance our
learning in various technical fields.
Ishita Agarwal
23EJCCS096
Vii
ACADEMIC YEAR
2024-2025
ABSTRACT
The industrial training program offered an in-depth exploration of Python
programming, recognized as one of the most powerful and versatile programming
languages in today’s tech landscape. With applications spanning web development,
data analysis, machine learning, automation, and more, Python has become a
cornerstone skill for professionals in various industries.
The program was designed for participants ranging from beginners to those with
some programming experience. It encompassed a comprehensive curriculum that
began with foundational concepts, including syntax, data types, control structures,
and functions. As participants progress, they delve into advanced topics such as
object-oriented programming, error handling, and testing, providing them with a
robust understanding of software development practices.
2024-2025
TABLE OF CONTENTS
Certificate------------------------------------------------------------------------------------------- i
1. INTRODUCTION ------------------------------------------------------------------------------- 1
Purpose ..................................................................................................................................2
Project Scope......................................................................................................................... 3
4. SCREENSHOTS OF OUTPUT-------------------------------------------------------------- 15
5. Conclusion ---------------------------------------------------------------------------------------- 20
ACADEMIC YEAR
2024-2025
6. References ...................................................................................................................... 21
Xi
ACADEMIC YEAR
2024-2025
INTRODUCTION
(1)
ACADEMIC YEAR
2024-2025
Purpose
4. Design and Media: The project can be useful for digital artists, photographers,
or content creators who wish to add an artistic effect to their photos, social
media post, or websites.
(2)
ACADEMIC YEAR
2024-2025
o Educational Tool: This project can serve as a foundation for further exploration in to
more complex image transformation algorithms, machine learning, and deep learning
applications related to computer vision.
Example Workflow:
1. Load Image: The image is first loaded into the program.
2. Convert to Grayscale: The image is converted to a grayscale image.
3. Edge Detection: Techniques like Canny edge detection or Sobel operators are used to
find the edges of objects.
4. Invert and Blur: The edges are then inverted, and the image is blurred to give it a more
sketch-like appearance.
5. Blend: The edge-detected image is then combined with the original image to produce
the final sketch effect.
(3)
ACADEMIC YEAR
2024-2025
Project Scope
The future scope of the Python project in GUI involves enhancing the user experience by
implementing a graphical user interface (GUI) for the pencil sketch generation algorithm.
Integrating a GUI would empower users to interact with the algorithm more intuitively,
allowing for functionalities such as image uploads, parameter adjustments, and real-time
previews of generated sketches. This addition could significantly broaden the project'
saccessibility and usability, attracting a wider audience and making the process of
generating pencil sketches more user-friendly and interactive. Additionally, incorporating
features like drag-and-drop functionality, customizable settings, and batch processing
capabilities within the GUI could further elevate the project's appeal and practicality for
both casual users and professionals in various fields like art, design, and image editing.
Expanding the future scope of the Python project with a GUI could involve:
1. Multi-platform Compatibility : Developing the GUI to be compatible across various
operating systems (Windows, macOS, Linux) to ensure broader accessibility for users on
different platforms.
2. Advanced Editing Tools : Integrating advanced editing tools within the GUI to enable
users to refine and manipulate the generated sketches further. Features like brush tools,
filters, and layers could enhance the creative possibilities for users.
3. Machine Learning Integration: Continuously improving the algorithm by
incorporating machine learning models that learn from user interactions, thus allowing for
adaptive improvements in sketch generation based on user preferences and feedback.
4. Cloud Integration: Enabling cloud functionality within the GUI could facilitate the
processing of larger image datasets by leveraging cloud-based computing resources,
enhancing scalability and efficiency.
5. Export and Sharing Options : Providing options to export the generated sketches in
various formats (JPEG, PNG, etc.) and enabling easy sharing on social media platforms or
cloud storage directly from the GUI.
6. User Profiles and Customization : Implementing user profiles and customization
options within the GUI to save user preferences, settings, and previous sketches, offering a
personalized experience for frequent users.
(4)
ACADEMIC YEAR
2024-2025
8. Community Integration : Creating a platform within the GUI where users can
share their sketches, exchange ideas, and participate in a community-driven space,
fostering a vibrant community around the tool.
(5)
ACADEMIC YEAR
2024-2025
REQUIREMENT ANALYSIS
Hardware Requirements
Software Requirements
*Python Interpreter*:
Install the latest stable version of Python (3.x) from the
official [Python
website](https://www.python.org/downloads/).
Ensure that the installation includes pip, the package manager for
Python, to facilitate library management.
(6)
ACADEMIC YEAR
2024-2025
*Recommended IDEs*:
- *PyCharm*: A powerful IDE specifically designed for Python development,
offering features like code analysis, debugging, and version control
integration.
- *Visual Studio Code*: A lightweight and highly customizable editor with
Python extensions for enhanced functionality.
- *Jupyter Notebook*: Ideal for data science and interactive computing,
allowing you to combine code, text, and visualizations in a single
document.
- *Spyder*: A scientific IDE with features suited for data analysis and scientific computing.
-
3. Package Management
*pip*:
- Included with Python installations, used for installing and managing
additional Python packages.
*Anaconda* (optional):
- A distribution that comes with Python and many scientific libraries pre-
installed, along with the conda package manager for managing environments
and dependencies.
-
4. Libraries and Frameworks
*Data Manipulation*:
- *Pandas*: For data analysis and manipulation.
- *NumPy*: For numerical computations and handling arrays.
*Data Visualization*:
- *Matplotlib*: For creating static, animated, and interactive visualizations.
- *Seaborn*: For statistical data visualization built on top of Matplotlib.
- *Plotly*: For interactive visualizations.
(7)
*Web Development*:
- *Flask*: A lightweight web framework for building web applications.
- *Django*: A high-level web framework that encourages rapid
development and clean, pragmatic design.
(8)
ACADEMIC YEAR
2024-2025
5. Version Control
*Git*:
- Version control system for tracking changes in source code and
collaborating with others. Tools like GitHub, GitLab, or Bitbucket can be
used for remote repositories.
6. Database Management
7. Testing Frameworks
*unittest*: The built-in testing framework in Python.
*pytest*: A powerful testing framework for writing simple as well as scalable test c
8..Documentation Tools
*Sphinx*: For generating documentation from docstrings in Python code.
*Markdown editors*: For creating README files and project documentation.
(9)
ACADEMIC YEAR
2024-2025
Functional Requirements
1. Data Importing
The system shall allow the user to select and upload a CSV file from the
local file system.
The system shall read the contents of the CSV file and convert it into a
structured format (e.g., DataFrame).
The system shall handle common CSV format variations, including
different delimiters (e.g., comma, semicolon) and encodings (e.g.,
UTF-8).
(10)
ACADEMIC YEAR
2024-2025
The system shall perform basic statistical analysis on the imported data (e.g.,
mean, median, standard deviation).
The system shall provide visual summaries of the data, such as histograms
or box plots, to help users understand distributions.
4. Graph Plotting
The system shall allow the user to select the type of graph to plot from a
predefined list (e.g., line graph, bar chart, scatter plot, pie chart).
The system shall plot the selected graph using the imported data and display
it in a user-friendly manner.
The system shall allow customization of the graphs, including options to:
- Add titles and labels for axes
- Change colors and styles
- Include legends and annotations
5. User Interaction
The system shall provide an intuitive user interface that guides the user
through the process of uploading data, selecting graph types, and
customizing visualizations.
The system shall allow users to save the generated graphs in common
formats (e.g., PNG, JPEG, PDF).
6. Error Handling
The system shall provide informative error messages for any issues
encountered during file import, data processing, or graph plotting.
The system shall allow users to retry data import or correct errors without
restarting the application.
(11)
ACADEMIC YEAR
2024-2025
The system shall include a help section or user manual that explains how to
use the application, including importing data and customizing graphs.
8. File Handling
The system shall provide informative files for any issues
encountered during file import, data processing, or graph plotting.
The system shall allow users to retry data import or correct errors without
restarting the application.
(12)
ACADEMIC YEAR
2024-2025
Non-Functional Requirements
1. Performance
o The system shall import and process CSV files with less than
5,000 rows in under 2 seconds.
o The system shall render graphs within 1 second for datasets of
up to 10,000 data points.
2. Usability
o The user interface shall be intuitive and easy to navigate,
allowing users to complete the import and visualization tasks
with minimal training.
o The system shall provide tooltips and help messages to assist
users in using features effectively.
3. Reliability
o The system shall maintain a failure rate of less than 1%
during CSV file imports and graph plotting.
o The system shall recover gracefully from unexpected errors,
providing users with options to retry or correct issues.
4. Maintainability
o The code should be well-structured and documented,
allowing future developers to easily understand and
modify it.
o The use of modular design should enable easy updates
to specific components .
5. Portability
o The application shall be easily portable, allowing it to be deployed
on different platforms without major modifications.
(13)
ACADEMIC YEAR
2024-2025
6. Security
o The system shall ensure that imported CSV files are validated
to prevent potential code injection or data corruption.
o User data and any generated graphs shall be stored securely and
not exposed to unauthorized access.
7. Scalability
o The system shall be able to handle CSV files containing up to
100,000 rows without significant degradation in performance.
o The system should allow for future enhancements to support
larger datasets and more complex visualizations.
8. Documentation
o Comprehensive user documentation shall be provided, detailing
installation, usage, and troubleshooting procedures.
o Developer documentation shall be maintained, including code
comments and design diagrams, to assist future developers in
understanding the system.
(14)
ACADEMIC YEAR
2024-2025
Inheritance:
Allows a class to inherit attributes and methods from another class, enabling
reuse and extension.
Polymorphism:
Different classes can define methods with the same name but different
behaviors.
Abstraction:
Simplifies complex functionality, hiding details from users.
Attributes:
Instance Attributes: Unique to each object.
Class Attributes: Shared across all instances.
Constructors/Destructors:
Constructor ( init ): Initializes new objects.
Destructor ( del ): Cleans up before an object is destroyed.
Multiple Inheritance:
A class can inherit from multiple classes, handled by Python’s Method
Resolution Order (MRO).
(15)
ACADEMIC YEAR
2024-2025
(16)
ACADEMIC YEAR
2024-2025
SYSTEM DESIGN
Use Case diagram
Creating a use case diagram for an "Image to Pencil Sketch Converter" project in
Python involves identifying the main actors, use cases, and their interactions.
Here’s a textual representation of what the diagram might include:
Actors:
1. User: The person using the application to convert images.
2. System: The software that processes the image.
Use Cases:
1. Upload Image: User uploads an image file.
2. Convert Image: System converts the uploaded image to a pencil sketch.
3. Preview Sketch: User views the pencil sketch generated by the system.
4. Download Sketch: User downloads the converted pencil sketch.
5. Adjust Settings: User can adjust conversion settings (e.g., sketch intensity,
filter options).
(17)
ACADEMIC YEAR
2024-2025
(18)
ACADEMIC YEAR
2024-2025
Description of Interactions:
1. Upload Image: The user selects an image file from their device to upload
to the system.
2. Convert Image: Once the image is uploaded, the system processes it to
create a pencil sketch.
3. Preview Sketch: After conversion, the user can preview the sketch.
4. Download Sketch: The user can download the resulting sketch to their
device.
5. Adjust Settings: The user has the option to modify parameters that affect
the conversion process.
Users Table:
1. user_id (Primary Key)
2. username
3. email
4. password_hash
5. created_at
Images Table:
1. image_id (Primary Key)
2. user_id (Foreign Key)
3. file_path
4. upload_date (19)
ACADEMIC YEAR
2024-2025
Sketches Table:
1. sketch_id (Primary Key)
2. image_id (Foreign Key)
3. sketch_path
4. conversion date
5. settings
2. Database Choice:
1. Relational Databases: PostgreSQL, MySQL, SQLite (good for structured
data).
2. NoSQL Databases: MongoDB (good for unstructured data).
(20)
ACADEMIC YEAR
2024-2025
Screenshots of Code
(21)
ACADEMIC YEAR
2024-2025
(22)
ACADEMIC YEAR
2024-2025
OUTPUT
(23)
ACADEMIC YEAR
2024-2025
(24)
ACADEMIC YEAR
2024-2025
Conclusions
In conclusion, the pencil sketch from image project, implemented using a programming
languages such as Python with libraries like OpenCV, allows for the transformation of digital
images into aesthetically pleasing hand-drawn sketches. By employing techniques like grayscale
conversion, edge detection, contrast adjustment and optional smoothing, the project achieves a
visually appealing and artistic result. This process offers a creative way to bring a traditional
pencil sketch feel to digital images, combining the power of programming and image processing
to enhance visual appeal.
The implemented Python project successfully converts images into pencil sketches by leveraging
an algorithm that effectively captures key features and textures from the original images.
Through a comparative analysis between the generated pencil sketches and their respective
originals, it was observed that the algorithm generally preserved crucial details while imparting a
pencil-drawn
appearance.
While the algorithm showcases promising results in generating quality sketches, further
refinement can enhance its accuracy, particularly in intricate areas and finer details. The
computational efficiency of the algorithm was reasonable for smaller images; however,
optimizations might be necessary for larger or more complex images to ensure faster processing
times. 32
User feedback indicates overall satisfaction with the generated pencil sketches, highlighting their
likeness to hand-drawn sketches. Suggestions for future improvements include refining the
algorithm to better capture subtle details and exploring methods to enhance computational
efficiency for larger-scale image processing.
2024-2025
Further enhancements could refine its accuracy and scalability, potentially offering an even more
seam less conversion from images to pencil sketches.
While the current implementation yields quality outcomes, there remains ample room for
further improvements. Enhancements directed towards refining the algorithm's accuracy and
scalability hold promise in advancing its capabilities. Increased accuracy in recognizing and
replicating intricate details within images, coupled with enhanced scalability for processing larger
datasets, could significantly augment the algorithm's performance.
Looking ahead, the pursuit of heightened accuracy and scalability emerges as a focal point for
advancing this algorithm. Fine-tuning its accuracy to capture nuanced details within images an
daugmenting its scalability for handling larger datasets could revolutionize its practicality
andusability across various industries.
Additionally, envisioning a more seamless conversion process, wherein the algorithm seamlessly
translates images into lifelike pencil sketches, holds immense promise. This potential refinement
could usher in a new era for digital artists, photographers, and professionals seeking innovative
ways to transform images into compelling visual representations.
(26)
ACADEMIC YEAR
2024-2025
References
[www.python.org]
[https://www.python.org/community/]
[www.geeksforgeeks.org]
[www.pypi.org]
[www.w3schools.com]
[www.techtarget.com]
(27)