Commit 371c8b16 authored by IT18109290_Fernando W.S.D's avatar IT18109290_Fernando W.S.D

Merge branch 'IT18109290_Dewmal' into 'master'

It18109290 dewmal

See merge request !89
parents 27d1cbc7 445c9090
...@@ -33,12 +33,14 @@ if(result != null){ ...@@ -33,12 +33,14 @@ if(result != null){
<!-- <p>Your account details are below:</p> --> <!-- <p>Your account details are below:</p> -->
<table > <table >
<tr > <tr >
<td>Enhancement type :</td> <td>Contrast Adjustment : Clahe</td>
</tr> </tr>
<tr> <tr>
<td>Method Type :</td> <td>Improve Image Shapness : Unsharp masking</td>
</tr>
<tr>
<td>Noise Type : Gaussian noise</td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
...@@ -247,7 +249,7 @@ function insertVideoAbnormal(newVideo) { ...@@ -247,7 +249,7 @@ function insertVideoAbnormal(newVideo) {
console.log(data) console.log(data)
console.log(data.id) console.log(data.id)
data.path = "E:\\BACKBONE\\videos\\Input.mp4" //data.path = "E:\\BACKBONE\\videos\\Input.mp4"
let id = data.id let id = data.id
fetch(`http://127.0.0.1:5000/startAbnormalBehaviourDetection`, { fetch(`http://127.0.0.1:5000/startAbnormalBehaviourDetection`, {
......
...@@ -10,6 +10,7 @@ from tifffile import askopenfilename ...@@ -10,6 +10,7 @@ from tifffile import askopenfilename
def capture_humans(path): def capture_humans(path):
# path = "E:\\BACKBONE\\videos\\Input.mp4"
print(path) print(path)
protopath = "E:/BACKBONE/abnormal_behavior_detection/Models/Human Detection/MobileNetSSD_deploy.prototxt" protopath = "E:/BACKBONE/abnormal_behavior_detection/Models/Human Detection/MobileNetSSD_deploy.prototxt"
......
...@@ -38,111 +38,6 @@ video_files = VideoSchema(many=True) ...@@ -38,111 +38,6 @@ video_files = VideoSchema(many=True)
value_field = Values() value_field = Values()
class EnhancedVideos(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
path = db.Column(db.String(150))
def __init__(self, name, path):
self.name = name
self.path = path
class EnhancedVideosSchema(ma.Schema):
class Meta:
fields = ('id', 'name', 'path')
class EnhancedValues:
class Meta:
fields = 'value'
EnhancedVideoFile = EnhancedVideosSchema()
EnhancedVideo_value_field = EnhancedValues()
class AbnormalBehaviourDetails(db.Model):
id = db.Column(db.Integer, primary_key=True)
typeOfAttack = db.Column(db.String(100))
usedWeapon = db.Column(db.String(100))
def __init__(self, typeOfAttack, usedWeapon):
self.usedWeapon = usedWeapon
self.typeOfAttack = typeOfAttack
class AbnormalBehaviourSchema(ma.Schema):
class Meta:
fields = ('id', 'usedWeapon', 'typeOfAttack')
class Values:
class Meta:
fields = 'value'
AbnormalBehaviour = AbnormalBehaviourSchema()
AbnormalBehaviours = AbnormalBehaviourSchema(many=True)
AbnormalBehaviour_value_field = Values()
# For Face Recognition
class FaceRecognitionDetails(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
path = db.Column(db.String(250))
def __init__(self, name, path):
self.name = name
self.path = path
class FaceRecognitionSchema(ma.Schema):
class Meta:
fields = ('id', 'name', 'path')
class Values:
class Meta:
fields = 'value'
faceRecognitionSchema = FaceRecognitionSchema()
faceRecognitionSchemas = FaceRecognitionSchema(many=True)
FaceRecognitionSchema_field = Values()
# Figure
class FigureDetails(db.Model): # Articles
id = db.Column(db.Integer, primary_key=True)
age = db.Column(db.String(20))
gender = db.Column(db.String(6))
height = db.Column(db.Float())
def __init__(self, age, gender, height):
self.age = age
self.gender = gender
self.height = height
class FigureSchema(ma.Schema):
class Meta:
fields = ('id', 'age', 'gender', 'height')
class Values():
class Meta:
fields = 'value'
figure_data = FigureSchema()
figure_datas = FigureSchema(many=True)
@app.route('/get', methods=['GET']) @app.route('/get', methods=['GET'])
def get_videos(): def get_videos():
videos = VideoDetails.query.all() videos = VideoDetails.query.all()
...@@ -178,6 +73,34 @@ def add_video(): ...@@ -178,6 +73,34 @@ def add_video():
return video_file.jsonify(video) return video_file.jsonify(video)
""" Start of the image enhancement function """
class EnhancedVideos(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
path = db.Column(db.String(150))
def __init__(self, name, path):
self.name = name
self.path = path
class EnhancedVideosSchema(ma.Schema):
class Meta:
fields = ('id', 'name', 'path')
class EnhancedValues:
class Meta:
fields = 'value'
EnhancedVideoFile = EnhancedVideosSchema()
EnhancedVideo_value_field = EnhancedValues()
@app.route('/StartImageEnhance', methods=['POST']) @app.route('/StartImageEnhance', methods=['POST'])
def StartImageEnhance(): def StartImageEnhance():
from imageEnhancement import VidToFrames from imageEnhancement import VidToFrames
...@@ -199,6 +122,37 @@ def StartImageEnhance(): ...@@ -199,6 +122,37 @@ def StartImageEnhance():
return values return values
""" End of the image enhancement function """
""" Start of the abnormal behavior detection function """
class AbnormalBehaviourDetails(db.Model):
id = db.Column(db.Integer, primary_key=True)
typeOfAttack = db.Column(db.String(100))
usedWeapon = db.Column(db.String(100))
def __init__(self, typeOfAttack, usedWeapon):
self.usedWeapon = usedWeapon
self.typeOfAttack = typeOfAttack
class AbnormalBehaviourSchema(ma.Schema):
class Meta:
fields = ('id', 'usedWeapon', 'typeOfAttack')
class Values:
class Meta:
fields = 'value'
AbnormalBehaviour = AbnormalBehaviourSchema()
AbnormalBehaviours = AbnormalBehaviourSchema(many=True)
AbnormalBehaviour_value_field = Values()
@app.route('/startAbnormalBehaviourDetection', methods=['POST']) @app.route('/startAbnormalBehaviourDetection', methods=['POST'])
def startAbnormalBehaviourDetection(): def startAbnormalBehaviourDetection():
from abnormal_behavior_detection.ScriptsOrder import Scripts_Order from abnormal_behavior_detection.ScriptsOrder import Scripts_Order
...@@ -214,85 +168,78 @@ def startAbnormalBehaviourDetection(): ...@@ -214,85 +168,78 @@ def startAbnormalBehaviourDetection():
# data = {'id': id, 'name': name, 'path': path} # data = {'id': id, 'name': name, 'path': path}
# Human_Detection_Video.capture_humans('C:/Users/Givindu/Desktop/New folder/'+path[2]) # Human_Detection_Video.capture_humans('C:/Users/Givindu/Desktop/New folder/'+path[2])
AbDetection = Scripts_Order.data(path) print("app -> " + path)
AbDetection = Scripts_Order.data(
"E:\\BACKBONE\\image_enhancement\\EnhancedVideos\\EnhancedVideo1\\" + path.split("\\")[2])
return jsonify(AbDetection) return jsonify(AbDetection)
@app.route('/RunFaceRecognition/<id>/', methods=['POST']) class behavior_details(db.Model):
def RunFaceRecognition(id): id = db.Column(db.Integer, primary_key=True)
from face_detection_recognition import script_file incident_type = db.Column(db.String(100))
id = request.json['id'] used_weapon = db.Column(db.String(100))
name = request.json['name'] detected_time = db.Column(db.Float())
path = request.json['path']
# data = get_video(id)
path = str(path).split('\\') def __init__(self, incident_type, used_weapon, detected_time):
print(path) self.incident_type = incident_type
self.used_weapon = used_weapon
self.detected_time = detected_time
data = {'id': id, 'name': name, 'path': path}
# data = {'id': id, 'name': name, 'path': path}
# FaceRecognition = Scripts.data('C:/Users/Praveen/Desktop/Research project/PP1 input/Input video/' + path[2]) class behavior_details_schema(ma.Schema):
FDRecognition = script_file.data('E:\\BACKBONE\\videos\\' + path[2]) class Meta:
fields = (
'id', 'incident_type', 'used_weapon', 'detected_time')
return jsonify(FDRecognition)
behaviors_schema = behavior_details_schema()
behaviors_schema = behavior_details_schema(many=True)
@app.route('/StartFaceRecognition', methods=['POST'])
def StartFaceRecognition():
from face_detection_recognition import script_file
# path = request.json['path'] class criminal_result_schema(ma.Schema):
# # data = get_video(id) class Meta:
# fields = (
# path = str(path).split('\\') 'id', 'incident_type', 'used_weapon', 'detected_time')
# print(path)
# FaceRecognition = Scripts.data('C:/Users/Praveen/Desktop/Research project/PP1 input/Input video/' + path[2])
FDRecognition = script_file.imagetovideo_process(
'E:/BACKBONE/abnormal_behavior_detection/frames/Suspects with Weapons/')
return jsonify(FDRecognition) criminal_schema = criminal_result_schema()
criminals_schema = criminal_result_schema(many=True)
""" End of the abnormal behavior detection function """
@app.route('/RunFigureRecognition', methods=['POST']) """ Start of the face recognition function """
def RunFigureRecognition():
from figure_recognition.ScriptList import Script_List
path = request.json['path']
# data = get_video(id)
path = str(path).split('\\')
print(path)
# data = {'id': id, 'name': name, 'path': path}
# data = {'id': id, 'name': name, 'path': path}
age, gender = Script_List.data('C:/Users/USER/Desktop/Research/image/' + path[2])
# figure_data.jsonify({'id':0, 'age':age, 'gender':gender, 'height':0}) # For Face Recognition
return jsonify(age, gender) class FaceRecognitionDetails(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
path = db.Column(db.String(250))
def __init__(self, name, path):
self.name = name
self.path = path
@app.route('/StartFigureRecognition', methods=['GET']) class FaceRecognitionSchema(ma.Schema):
def StartFigureRecognition(): class Meta:
from figure_recognition.ScriptList import Script_List fields = ('id', 'name', 'path')
age, gender = Script_List.figure()
# figure_data.jsonify({'id':0, 'age':age, 'gender':gender, 'height':0}) class Values:
return jsonify(age, gender) class Meta:
fields = 'value'
@app.route('/SaveFigureData', methods=['POST']) faceRecognitionSchema = FaceRecognitionSchema()
def SaveFigureData(): faceRecognitionSchemas = FaceRecognitionSchema(many=True)
age = request.json['age']
gender = request.json['gender']
height = 5.4
data = FigureDetails(age, gender, height) FaceRecognitionSchema_field = Values()
db.session.add(data)
db.session.commit()
return jsonify("Done"); """ End of the abnormal behavior detection function """
""" Start of the face detection function """
# Criminals table input fields # Criminals table input fields
...@@ -405,28 +352,6 @@ def update_Criminals_details(id): ...@@ -405,28 +352,6 @@ def update_Criminals_details(id):
return criminals_Schema.jsonify(criminals_details) return criminals_Schema.jsonify(criminals_details)
class behavior_details(db.Model):
id = db.Column(db.Integer, primary_key=True)
incident_type = db.Column(db.String(100))
used_weapon = db.Column(db.String(100))
detected_time = db.Column(db.Float())
def __init__(self, incident_type, used_weapon, detected_time):
self.incident_type = incident_type
self.used_weapon = used_weapon
self.detected_time = detected_time
class behavior_details_schema(ma.Schema):
class Meta:
fields = (
'id', 'incident_type', 'used_weapon', 'detected_time')
behaviors_schema = behavior_details_schema()
behaviors_schema = behavior_details_schema(many=True)
class criminal_result(db.Model): class criminal_result(db.Model):
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
Name = db.Column(db.String(100)) Name = db.Column(db.String(100))
...@@ -451,14 +376,73 @@ class criminal_result(db.Model): ...@@ -451,14 +376,73 @@ class criminal_result(db.Model):
self.Crimes = Crimes self.Crimes = Crimes
class criminal_result_schema(ma.Schema): @app.route('/RunFaceRecognition/<id>/', methods=['POST'])
def RunFaceRecognition(id):
from face_detection_recognition import script_file
id = request.json['id']
name = request.json['name']
path = request.json['path']
# data = get_video(id)
path = str(path).split('\\')
print(path)
data = {'id': id, 'name': name, 'path': path}
# data = {'id': id, 'name': name, 'path': path}
# FaceRecognition = Scripts.data('C:/Users/Praveen/Desktop/Research project/PP1 input/Input video/' + path[2])
FDRecognition = script_file.data('E:\\BACKBONE\\videos\\' + path[2])
return jsonify(FDRecognition)
@app.route('/StartFaceRecognition', methods=['POST'])
def StartFaceRecognition():
from face_detection_recognition import script_file
# path = request.json['path']
# # data = get_video(id)
#
# path = str(path).split('\\')
# print(path)
# FaceRecognition = Scripts.data('C:/Users/Praveen/Desktop/Research project/PP1 input/Input video/' + path[2])
FDRecognition = script_file.imagetovideo_process(
'E:/BACKBONE/abnormal_behavior_detection/frames/Suspects with Weapons/')
return jsonify(FDRecognition)
""" End of the face detection function """
""" Start of the figure recognition function """
# Figure
class FigureDetails(db.Model): # Articles
id = db.Column(db.Integer, primary_key=True)
age = db.Column(db.String(20))
gender = db.Column(db.String(6))
height = db.Column(db.Float())
def __init__(self, age, gender, height):
self.age = age
self.gender = gender
self.height = height
class FigureSchema(ma.Schema):
class Meta: class Meta:
fields = ( fields = ('id', 'age', 'gender', 'height')
'id', 'incident_type', 'used_weapon', 'detected_time')
criminal_schema = criminal_result_schema() class Values():
criminals_schema = criminal_result_schema(many=True) class Meta:
fields = 'value'
figure_data = FigureSchema()
figure_datas = FigureSchema(many=True)
@app.route('/GetAllData', methods=['GET']) @app.route('/GetAllData', methods=['GET'])
...@@ -498,5 +482,46 @@ def GetAllData(): ...@@ -498,5 +482,46 @@ def GetAllData():
return jsonify(data1, data2, data3) return jsonify(data1, data2, data3)
@app.route('/RunFigureRecognition', methods=['POST'])
def RunFigureRecognition():
from figure_recognition.ScriptList import Script_List
path = request.json['path']
# data = get_video(id)
path = str(path).split('\\')
print(path)
# data = {'id': id, 'name': name, 'path': path}
# data = {'id': id, 'name': name, 'path': path}
age, gender = Script_List.data('C:/Users/USER/Desktop/Research/image/' + path[2])
# figure_data.jsonify({'id':0, 'age':age, 'gender':gender, 'height':0})
return jsonify(age, gender)
@app.route('/StartFigureRecognition', methods=['GET'])
def StartFigureRecognition():
from figure_recognition.ScriptList import Script_List
age, gender = Script_List.figure()
# figure_data.jsonify({'id':0, 'age':age, 'gender':gender, 'height':0})
return jsonify(age, gender)
@app.route('/SaveFigureData', methods=['POST'])
def SaveFigureData():
age = request.json['age']
gender = request.json['gender']
height = 5.4
data = FigureDetails(age, gender, height)
db.session.add(data)
db.session.commit()
return jsonify("Done");
""" End of the figure recognition function """
if __name__ == "__main__": if __name__ == "__main__":
app.run(debug=True) app.run(debug=True)
import cv2
import os
from imageEnhancement import ImageSharpening
from imageEnhancement import CreateNewFolderForFrames
def adjustContrast(folder, rate):
contrastAdjustedFrames = CreateNewFolderForFrames.createFolderForContrasted(folder)
path = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folder
count = 10000000
for file in os.listdir(path):
if file.endswith(".jpg"):
# -----Reading the image-----------------------------------------------------
img = cv2.imread(path + "\\" + file)
# -----Converting image to LAB Color model-----------------------------------
lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
# -----Splitting the LAB image to different channels-------------------------
l, a, b = cv2.split(lab)
# -----Applying CLAHE to L-channel-------------------------------------------
clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(5, 5))
cl = clahe.apply(l)
# -----Merge the CLAHE enhanced L-channel with the a and b channel-----------
limg = cv2.merge((cl, a, b))
# -----Converting image from LAB Color model to RGB model--------------------
final = cv2.cvtColor(limg, cv2.COLOR_LAB2BGR)
cv2.imwrite(contrastAdjustedFrames + "\\%d.jpg" % count, final)
count += 1
value = ImageSharpening.imageSharp(folder, contrastAdjustedFrames, rate)
return value
# Python program to explain os.mkdir() method
# importing os module
import os import os
def createFolder(): def createFolder():
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames" parentPath = "E:\\BACKBONE\\image_enhancement\\Frames"
...@@ -36,9 +34,10 @@ def createFolder(): ...@@ -36,9 +34,10 @@ def createFolder():
print("Directory '% s' created" % directory) print("Directory '% s' created" % directory)
return directory return directory
def createFolderForEnhancedFrames(folderName): def createFolderForEnhancedFrames(folderName):
print("folder name in createFolderForEnhancedFrames : " +folderName) print("folder name in createFolderForEnhancedFrames : " + folderName)
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
totalFiles = 0 totalFiles = 0
totalDir = 0 totalDir = 0
...@@ -58,7 +57,7 @@ def createFolderForEnhancedFrames(folderName): ...@@ -58,7 +57,7 @@ def createFolderForEnhancedFrames(folderName):
directory = "Enhanced_Frames" + str(count) directory = "Enhanced_Frames" + str(count)
# Parent Directory path # Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
# Path # Path
path = os.path.join(parent_dir, directory) path = os.path.join(parent_dir, directory)
...@@ -71,7 +70,142 @@ def createFolderForEnhancedFrames(folderName): ...@@ -71,7 +70,142 @@ def createFolderForEnhancedFrames(folderName):
print("Directory '% s' created" % directory) print("Directory '% s' created" % directory)
return directory return directory
# if __name__ == '__main__':
# # Calling the function
# createFolder()
def createFolderForContrasted(folderName):
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
totalFiles = 0
totalDir = 0
for base, dirs, files in os.walk(parentPath):
print('Searching in : ', base)
for directories in dirs:
totalDir += 1
for Files in files:
totalFiles += 1
print('Total Number of directories', totalDir)
count = totalDir + 1
# Directory
directory = "Contrast_Adjusted_Frames" + str(count)
# Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
# Path
path = os.path.join(parent_dir, directory)
# Create the directory
# 'GeeksForGeeks' in
# '/home / User / Documents'
os.mkdir(path)
print("path : " + path)
print("Directory '% s' created" % directory)
return path
def createFolderForSharpImages(folderName):
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
totalFiles = 0
totalDir = 0
for base, dirs, files in os.walk(parentPath):
print('Searching in : ', base)
for directories in dirs:
totalDir += 1
for Files in files:
totalFiles += 1
print('Total Number of directories', totalDir)
count = totalDir + 1
# Directory
directory = "Sharp_Frames" + str(count)
# Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
# Path
path = os.path.join(parent_dir, directory)
# Create the directory
# 'GeeksForGeeks' in
# '/home / User / Documents'
os.mkdir(path)
print("path : " + path)
print("Directory '% s' created" % directory)
return path
def DenoiseGaussian(folderName):
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
totalFiles = 0
totalDir = 0
for base, dirs, files in os.walk(parentPath):
print('Searching in : ', base)
for directories in dirs:
totalDir += 1
for Files in files:
totalFiles += 1
print('Total Number of directories', totalDir)
count = totalDir + 1
# Directory
directory = "Gaussian_Denoised_Frames" + str(count)
# Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
# Path
path = os.path.join(parent_dir, directory)
# Create the directory
# 'GeeksForGeeks' in
# '/home / User / Documents'
os.mkdir(path)
print("path : " + path)
print("Directory '% s' created" % directory)
return path
def smoothImagesFolder(folderName):
parentPath = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
totalFiles = 0
totalDir = 0
for base, dirs, files in os.walk(parentPath):
print('Searching in : ', base)
for directories in dirs:
totalDir += 1
for Files in files:
totalFiles += 1
print('Total Number of directories', totalDir)
count = totalDir + 1
# Directory
directory = "Smooth_Images" + str(count)
# Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName
# Path
path = os.path.join(parent_dir, directory)
# Create the directory
# 'GeeksForGeeks' in
# '/home / User / Documents'
os.mkdir(path)
print("path : " + path)
print("Directory '% s' created" % directory)
return path
# Python program to explain os.mkdir() method
# importing os module
import os import os
def createFolder(name):
def createFolderForEnhancedVideos():
parentPath = "E:\\BACKBONE\\image_enhancement\\EnhancedVideos" parentPath = "E:\\BACKBONE\\image_enhancement\\EnhancedVideos"
totalFiles = 0 totalFiles = 0
...@@ -21,22 +19,15 @@ def createFolder(name): ...@@ -21,22 +19,15 @@ def createFolder(name):
count = totalDir + 1 count = totalDir + 1
# Directory # Directory
directory = name directory = "EnhancedVideo" + str(count)
# Parent Directory path
parent_dir = "E:\\BACKBONE\\image_enhancement\\EnhancedVideos\\"
# Path # Path
path = os.path.join(parent_dir, directory) path = os.path.join(parentPath, directory)
# Create the directory # Create the directory
# 'GeeksForGeeks' in # 'GeeksForGeeks' in
# '/home / User / Documents' # '/home / User / Documents'
os.mkdir(path) os.mkdir(path)
print("path : " + path)
print("Directory '% s' created" % directory) print("Directory '% s' created" % directory)
return directory return path
if __name__ == '__main__':
# Calling the function
createFolder()
import cv2 as cv2 import cv2 as cv2
import numpy as np
import os import os
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
...@@ -20,13 +19,9 @@ def enhanceFrames(folderName, rate): ...@@ -20,13 +19,9 @@ def enhanceFrames(folderName, rate):
for file in os.listdir(path): for file in os.listdir(path):
if file.endswith(".jpg"): if file.endswith(".jpg"):
image = cv2.imread(path + "\\" + file) image = cv2.imread(path + "\\" + file)
# print(image)
# print("file : " + file)
gaussian_3 = cv2.GaussianBlur(image, (0, 0), 3.0) gaussian_3 = cv2.GaussianBlur(image, (0, 0), 3.0)
unsharp_image = cv2.addWeighted(image, 5, gaussian_3, -3.5, 0, image) unsharp_image = cv2.addWeighted(image, 5, gaussian_3, -3.5, 0, image)
cv2.imwrite("E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName+"\\"+enhancedPath+"\\%d.jpg" % count, unsharp_image) cv2.imwrite("E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName+"\\"+enhancedPath+"\\%d.jpg" % count, unsharp_image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
count += 1 count += 1
value = FramesToVid.generate_video(folderName, enhancedPath, rate) value = FramesToVid.generate_video(folderName, enhancedPath, rate)
......
...@@ -3,25 +3,19 @@ import os ...@@ -3,25 +3,19 @@ import os
import cv2 import cv2
from PIL import Image from PIL import Image
# Video Generating function # Video Generating function
from imageEnhancement import CreateNewFolderForVideos from imageEnhancement import CreateNewFolderForVideos
def generate_video(folderName, enhancedPath, rate): def generate_video(folderName, parentFolder, rate):
print("folder name : "+folderName) print("Image folder : " + folderName)
print("enhancedPath : "+enhancedPath) print("parentFolder : " + parentFolder)
video_folder_name = "video_"+folderName video_folder_name = "video_" + folderName.split('\\')[5]
CreateNewFolderForVideos.createFolder(video_folder_name)
# Checking the current directory path video_folder_path = CreateNewFolderForVideos.createFolderForEnhancedVideos()
#print(os.getcwd())
# Folder which contains all the images # path = "E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName+"\\"+enhancedPath
# from which video is to be generated path = folderName
#os.chdir("E:\\#ProgrammingWork\\Python\\VideoEnhance\\Frames\\"+folderName)
path = "E:\\BACKBONE\\image_enhancement\\Frames\\"+folderName+"\\"+enhancedPath
mean_height = 0 mean_height = 0
mean_width = 0 mean_width = 0
...@@ -44,9 +38,6 @@ def generate_video(folderName, enhancedPath, rate): ...@@ -44,9 +38,6 @@ def generate_video(folderName, enhancedPath, rate):
mean_width = int(mean_width / num_of_images) mean_width = int(mean_width / num_of_images)
mean_height = int(mean_height / num_of_images) mean_height = int(mean_height / num_of_images)
# print(mean_height)
# print(mean_width)
# Resizing of the images to give # Resizing of the images to give
# them same width and height # them same width and height
for file in os.listdir('.'): for file in os.listdir('.'):
...@@ -65,10 +56,12 @@ def generate_video(folderName, enhancedPath, rate): ...@@ -65,10 +56,12 @@ def generate_video(folderName, enhancedPath, rate):
print(im.filename.split('\\')[-1], " is resized") print(im.filename.split('\\')[-1], " is resized")
# --------------------------------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------------------------------
image_folder = 'E:\\BACKBONE\\image_enhancement\\Frames\\'+folderName+'\\'+enhancedPath # make sure to use your folder image_folder = folderName
video_name = 'video_'+folderName+'.avi' print("imagefolder ", image_folder)# make sure to use your folder
print("video folder path ", video_folder_path)# make sure to use your folder
video_name = 'Enhanced_Video.avi'
os.chdir("E:\\BACKBONE\\image_enhancement\\EnhancedVideos\\"+video_folder_name) os.chdir(video_folder_path)
images = [img for img in os.listdir(image_folder) images = [img for img in os.listdir(image_folder)
if img.endswith(".jpg") or if img.endswith(".jpg") or
...@@ -85,7 +78,7 @@ def generate_video(folderName, enhancedPath, rate): ...@@ -85,7 +78,7 @@ def generate_video(folderName, enhancedPath, rate):
# the width, height of first image # the width, height of first image
height, width, layers = frame.shape height, width, layers = frame.shape
video = cv2.VideoWriter(video_name, 0, rate, (width, height)) video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*'MP4V'), rate, (width, height))
# Appending the images to the video one by one # Appending the images to the video one by one
for image in images: for image in images:
...@@ -94,5 +87,5 @@ def generate_video(folderName, enhancedPath, rate): ...@@ -94,5 +87,5 @@ def generate_video(folderName, enhancedPath, rate):
# Deallocating memories taken for window creation # Deallocating memories taken for window creation
# cv2.destroyAllWindows() # cv2.destroyAllWindows()
# video.release() # releasing the video generated # video.release() # releasing the video generated
return video_folder_name+"\\"+video_name print(video_folder_path.split('\\')[4])
return video_folder_path.split('\\')[4]
\ No newline at end of file
import cv2
import numpy as np
import os
from imageEnhancement import CreateNewFolderForFrames
from imageEnhancement import RemoveGaussianNoise
def imageSharp(parentFolder, ContrastAdjustedFolder, rate):
SharpImages = CreateNewFolderForFrames.createFolderForSharpImages(parentFolder)
count = 10000000
for file in os.listdir(ContrastAdjustedFolder):
if file.endswith(".jpg"):
image = cv2.imread(ContrastAdjustedFolder + "\\" + file)
kernel_sharpening = np.array([[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]])
# applying the sharpening kernel to the input image & displaying it.
sharpened = cv2.filter2D(image, -1, kernel_sharpening)
cv2.imwrite(SharpImages + "\\%d.jpg" % count, sharpened)
count += 1
value = RemoveGaussianNoise.removeGaussianNoise(parentFolder, SharpImages, rate)
return value
import cv2
import os
from imageEnhancement import CreateNewFolderForFrames, FramesToVid
from imageEnhancement import Smooth
def removeGaussianNoise(parentFolder, SharpImages, rate):
GaussianDenoised = CreateNewFolderForFrames.DenoiseGaussian(parentFolder)
count = 10000000
for file in os.listdir(SharpImages):
if file.endswith(".jpg"):
img = cv2.imread(SharpImages + "\\" + file)
dst = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 5)
cv2.imwrite(GaussianDenoised + "\\%d.jpg" % count, dst)
count += 1
# Smooth.imageSmooth(parentFolder, GaussianDenoised)
value = FramesToVid.generate_video(GaussianDenoised, parentFolder, rate)
return value
import cv2
import os
from imageEnhancement import CreateNewFolderForFrames
def imageSmooth(parentFolder, GaussianDenoised):
smooth = CreateNewFolderForFrames.smoothImagesFolder(parentFolder)
count = 10000000
for file in os.listdir(GaussianDenoised):
if file.endswith(".jpg"):
img = cv2.imread(GaussianDenoised + "\\" + file)
blur = cv2.bilateralFilter(img, 60, 90, 90)
cv2.imwrite(smooth + "\\%d.jpg" % count, blur)
count += 1
# if __name__ == '__main__':
# imageSmooth("Frames1", "E:\\BACKBONE\\image_enhancement\\Frames\\Frames1\\Sharp_Frames2")
import os
import cv2 import cv2
from moviepy.video.io.VideoFileClip import VideoFileClip from moviepy.video.io.VideoFileClip import VideoFileClip
from imageEnhancement import CreateNewFolderForFrames from imageEnhancement import CreateNewFolderForFrames
from imageEnhancement import EnhaceFramesUsingGamma from imageEnhancement import ContrastEdjustments
from imageEnhancement import EnhaceFramesUsingUnsharpMasking
from imageEnhancement import FramesToVid
def FrameCapture(path): def FrameCapture(path):
...@@ -14,6 +9,7 @@ def FrameCapture(path): ...@@ -14,6 +9,7 @@ def FrameCapture(path):
folderName = CreateNewFolderForFrames.createFolder() folderName = CreateNewFolderForFrames.createFolder()
print("This is the folder name: " + folderName) print("This is the folder name: " + folderName)
# Path to video file # Path to video file
vidObj = cv2.VideoCapture(path) vidObj = cv2.VideoCapture(path)
...@@ -29,7 +25,6 @@ def FrameCapture(path): ...@@ -29,7 +25,6 @@ def FrameCapture(path):
success, image = vidObj.read() success, image = vidObj.read()
# Saves the frames with frame-count # Saves the frames with frame-count
# cv2.imwrite("E:\\#ProgrammingWork\\Python\\VideoEnhance\\a\\frame%d.jpg" % count, image)
if success == 1: if success == 1:
cv2.imwrite("E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName + "\\%d.jpg" % count, image) cv2.imwrite("E:\\BACKBONE\\image_enhancement\\Frames\\" + folderName + "\\%d.jpg" % count, image)
...@@ -37,7 +32,6 @@ def FrameCapture(path): ...@@ -37,7 +32,6 @@ def FrameCapture(path):
# loading video dsa gfg intro video # loading video dsa gfg intro video
clip = VideoFileClip(path).subclip(0, 10) clip = VideoFileClip(path).subclip(0, 10)
# clip = VideoFileClip("E:\\#ProgrammingWork\\pyCharm\\imageEnhancement\\vid\\Video3.mp4").subclip(0, 10)
# getting frame rate of the clip # getting frame rate of the clip
rate = clip.fps rate = clip.fps
...@@ -46,7 +40,6 @@ def FrameCapture(path): ...@@ -46,7 +40,6 @@ def FrameCapture(path):
print("FPS : " + str(rate)) print("FPS : " + str(rate))
print("folder name in Vid to frame : " + folderName) print("folder name in Vid to frame : " + folderName)
# EnhaceFramesUsingGamma.enhanceFrames(folderName, rate)
value = EnhaceFramesUsingUnsharpMasking.enhanceFrames(folderName, rate) value = ContrastEdjustments.adjustContrast(folderName, rate)
return value return value
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment