00001 import roslib 00002 roslib.load_manifest('opencv_tests') 00003 00004 import sensor_msgs.msg 00005 import cv 00006 00007 from opencv_latest.cv_bridge import CvBridge, CvBridgeError 00008 00009 def generate_converter(): 00010 map = [] 00011 for t in ["8U", "8S", "16U", "16S", "32S", "32F", "64F" ]: 00012 for c in [1,2,3,4]: 00013 nm = "%sC%d" % (t, c) 00014 map.append((nm, nm)) 00015 print "int encoding_as_cvtype(std::string encoding)" 00016 map.append(("rgb8", "8UC3")) 00017 map.append(("bgr8", "8UC3")) 00018 map.append(("rgba8", "8UC4")) 00019 map.append(("bgra8", "8UC4")) 00020 map.append(("mono8", "8UC1")) 00021 map.append(("mono16", "16UC")) 00022 print "{" 00023 for (a,b) in map: 00024 print ' if (encoding == "%s") return CV_%s;' % (a, b) 00025 print ' return -1;' 00026 print "}" 00027 fmts = [ "GRAY", "RGB", "BGR", "RGBA", "BGRA" ] 00028 print '' 00029 for src in fmts: 00030 print ' if (sourcefmt == "%s") {' % src 00031 for dst in fmts: 00032 if src != dst: 00033 print ' if (destfmt == "%s")' % dst 00034 print ' cvCvtColor(rosimg_, cvtimg_, CV_%s2%s);' % (src, dst) 00035 print ' }' 00036 print '' 00037 00038 if __name__ == '__main__': 00039 generate_converter()