def classify_image(self, imgname, ccs=None): if hasattr(imgname, 'ccs'): mi = imgname else: from sheetmusic import MusicImage self.l.debug("Loading image from file %s", imgname) mi = MusicImage(imgname) if ccs is None: self.l.debug("Getting relevant ccs.") relevant_cc = mi.ccs(remove_text=True, remove_inside_staffs=True) else: relevant_cc = ccs ret = Classified_image(self, mi, relevant_cc) self.images.append(ret) return ret
if __name__ == '__main__': from gamera.core import * import sys import re import time from sheetmusic import MusicImage from within import inout_vertical_ys from numpy import average init_gamera() for i, imgname in enumerate(sys.argv[1:]): m = re.match(r"^(.*)\.[^\.]+$", imgname) noend = m.group(1) start = time.time() i = MusicImage(imgname) print "Load image %f" % (time.time() - start) start = time.time() spikes = i.possible_text_areas() print "Spikes %f" % (time.time() - start) start = time.time() ccs = i.without_insidestaves_info().cc_analysis() print "ccanalysis %f" % (time.time() - start) sys.stdout.flush() for s in spikes: cond = inout_vertical_ys([(s['start'], s['stop'])]) cs = [c for c in ccs if cond(c)] print "%d ccs in ys: %d-%d" % (len(cs), s['start'], s['stop']) avgaspect = average([c.aspect_ratio() for c in cs]) print "%f mean aspect" % (avgaspect) print
from sheetmusic import MusicImage from within import inout_staff_condition import os.path if os.path.isfile("lvbp0.tif"): mi = MusicImage("lvbp0.tif") rgb = mi.to_rgb().to_onebit().to_rgb() # Painting inside staff things green cond = inout_staff_condition(mi.ms().get_staffpos()) ccs = [c for c in mi.ccs(False, False) if cond(c)] for c in ccs: rgb.highlight(c, RGBPixel(0, 255, 0)) # Painting relevant ccs' red. ccs = mi.ccs() for c in ccs: rgb.highlight(c, RGBPixel(255, 0, 0)) # Painting text yellow ccs = mi.possible_text_ccs() for c in ccs: rgb.highlight(c, RGBPixel(255, 255, 0)) rgb.save_PNG("lvbp0_relevant_ccs.png") mi = MusicImage("debussyp0.tif") rgb = mi.to_rgb().to_onebit().to_rgb() cond = inout_staff_condition(mi.ms().get_staffpos()) ccs = [c for c in mi.ccs(False, False) if cond(c)] for c in ccs: rgb.highlight(c, RGBPixel(0, 255, 0)) ccs = mi.ccs() for c in ccs: rgb.highlight(c, RGBPixel(255, 0, 0))
import re import yaml sys.path.append("..") from sheetmusic import MusicImage if __name__ == '__main__': FORMAT = "%(asctime)-15s %(levelname)s [%(name)s.%(funcName)s] %(message)s" logging.basicConfig(level=logging.DEBUG, format=FORMAT, filename="counter.log") init_gamera() for imgname in sys.argv[1:]: m = re.match(r"^(.*)\.[^\.]+$", imgname) noend = m.group(1) mi = MusicImage(imgname, training_filename="../preomr_edited_cnn.xml") c = mi.ccs_overall() cl = dict([(k, len(v)) for k, v in c.iteritems()]) outf = "%s-colorseg.yaml" % noend with open(outf, "w") as f: data = { 'text': { 'found': cl['text'], 'count': cl['text'] }, 'dynamics': { 'found': cl['classified'], 'count': cl['classified'] } } print "%s" % data