def matToV4(m): v= p4(0,0,0,0) v.x=m[0][0] v.y=m[1][0] v.z=m[2][0] v.w=m[3][0] return v
def check_jobs(): p4i = p4.p4(port = config.p4_port, client_executable = config.p4_client_executable, user = config.p4_user, password = config.p4_password) jobs = p4i.run('jobs') failures = 0 for j in jobs: try: p4i.run('job -o %s' % j['Job']) except p4.error, msg: # "Job '%s' doesn't match the jobspec:" print str(catalog.msg(1008, j['Job'])) print str(msg) failures = failures + 1
configure_name = string.lower(config.configure_name) configure_module = __import__('configure_' + configure_name) config = configure_module.configuration(config) dt_name = 'dt_' + string.lower(config.dt_name) dt_module = __import__(dt_name) dt = getattr(dt_module, dt_name)(config) # 4. MAKE A PERFORCE INTERFACE AND A "DEFECT TRACKER" FOR PERFORCE p4_interface = p4.p4(client = ('p4dti-%s' % socket.gethostname()), client_executable = config.p4_client_executable, password = config.p4_password, port = config.p4_port, user = config.p4_user, config_file = config.p4_config_file, logger = config.logger) # 5. MAKE THE REPLICATOR AND INITIALIZE IT r = replicator.replicator(dt, p4_interface, config) # A. REFERENCES # # [GDR 2000-09-13] "Replicator design"; Gareth Rees; Ravenbrook Limited; # 2000-09-13;
from p1 import p1 from p2 import p2 from p3 import p3 from p4 import p4 import cv2 # Analyze two objects picture image = p1('two_objects.pgm', 100) cv2.imwrite('binary_image.pgm', image) labeled_image, index_list = p2(image) cv2.imwrite('labeled_image.pgm', labeled_image) cv2.imshow('image', labeled_image) cv2.waitKey(0) info = p3(labeled_image) database = info[0] cv2.imwrite('output_image.pgm', info[1]) # Analyze many objects picture image = p1('many_objects_1.pgm', 100) labeled_image, index_list = p2(image) output_image = p4(labeled_image, database) cv2.imwrite("Analysis_Result.pgm", output_image) img = cv2.imread("Analysis_Result.pgm", 0) cv2.imshow('image', image) cv2.waitKey(0)
## p3 result = p3(img) p3_output = result[1].copy() p3_output = img_scale(p3_output) cv2.imwrite('p3_two_objects.jpg', p3_output) ## p4 query = cv2.imread('many_objects_1.pgm', cv2.IMREAD_UNCHANGED) query = p1(query, 81) query = cv2.copyMakeBorder(query, 1, 1, 1, 1, cv2.BORDER_CONSTANT, 0) query = p2(query) query = query[1 : query.shape[0] - 1, 1 : query.shape[1] - 1] p4_output = p4(query, result[0]) p4_output = img_scale(p4_output) cv2.imwrite('p4_many_objects_1.jpg', p4_output) query = cv2.imread('many_objects_2.pgm', cv2.IMREAD_UNCHANGED) query = p1(query, 81) query = cv2.copyMakeBorder(query, 1, 1, 1, 1, cv2.BORDER_CONSTANT, 0) query = p2(query) query = query[1 : query.shape[0] - 1, 1 : query.shape[1] - 1] p4_output = p4(query, result[0]) p4_output = img_scale(p4_output) cv2.imwrite('p4_many_objects_2.jpg', p4_output)
# Run sequential labeling algorithm labeled_img = p2.p2(binary_img) # Save labeled image cv2.imwrite("img_labels.pgm", labeled_img) # Print object attributes obj_info_arr = p3.p3(labeled_img) obj_database = obj_info_arr[0] for i in range(len(obj_database)): print "Object # " + str(i + 1) + ":\n" print "label = " + str(obj_database[i]['object_label']) print "x position = " + str(obj_database[i]['x_position']) print "y position = " + str(obj_database[i]['y_position']) print "minimum moment = " + str(obj_database[i]['min_moment']) print "orientation = " + str(obj_database[i]['orientation']) print "roundness = " + str(obj_database[i]['roundness']) print "\n" # Save overlay image cv2.imwrite("img_overlay.pgm", obj_info_arr[1]) # Check if similar two objects can be detected in 'many objects' image gray_in = cv2.imread("many_objects_1.pgm", cv2.CV_LOAD_IMAGE_GRAYSCALE) binary_img = p1.p1(gray_in, gray_level_threshold) labeled_img = p2.p2(binary_img) overlays_out = p4.p4(labeled_img, obj_database) # Save recognized objects image cv2.imwrite("img_similar_objects.pgm", overlays_out)
import numpy as np import cv2 from p1 import p1 from p2 import p2 from p3 import p3 from p4 import p4 binary_img = p1('two_objects.pgm', 135) labels_in = p2(binary_img) database_in = p3(labels_in) labels_many = p2(p1('many_objects_1.pgm', 135)) p4(labels_many, database_in)
plt.imshow(img_two_objects_binary * 255, 'gray') plt.show() # task 1b img_two_objects_labeled = p2(img_two_objects_binary) cv2.imwrite('two_objects_label.pgm', img_two_objects_labeled) plt.imshow(img_two_objects_labeled * 30, 'gray') plt.show() # task 1c database, img_two_objects_overlay = p3(img_two_objects_labeled) print database plt.imshow(img_two_objects_overlay) plt.show() # task 1d img_many_objects_1 = cv2.imread('many_objects_1.pgm', 0) img_many_objects_2 = cv2.imread('many_objects_2.pgm', 0) img_many_objects_1_binary = p1(img_many_objects_1, 127) img_many_objects_2_binary = p1(img_many_objects_2, 127) img_many_objects_1_labeled = p2(img_many_objects_1_binary) img_many_objects_2_labeled = p2(img_many_objects_2_binary) img_many_objects_1_overlay = p4(img_many_objects_1_labeled, database) img_many_objects_2_overlay = p4(img_many_objects_2_labeled, database) plt.imshow(img_many_objects_1_overlay) plt.show() plt.imshow(img_many_objects_2_overlay) plt.show() # This is the end of task 1