2007年11月01日 星期四 14:10
´ó¼ÒºÃ£¬Çë½ÌÒ»¸öÎÊÌ⣬ ÎÒÔÚ¿ª·¢Ò»¸öͼÏñ´¦ÀíÈí¼þ, ÔÀ´ÔÚpythonÖд¦ÀíͼÏñ£¬ÐèÒª¶ÔͼÏñµÄÿһ¸öÏñËصÄRGB½øÐд¦Àí import wx ... img = wx.Image(path, wx.BITMAP_TYPE_ANY) img2 = fixcolor£¨img) #ÕâÊÇÎÒ×öµÄͼÏñ´¦Àíº¯Êý ... ... def fixcolor(img): data=img.GetData() ... #¶Ôdata½øÐд¦Àí ... µ«ÊÇ´óͼƬËٶȴ¦ÀíÌ«Âý£¬600ÍòÏñËØÐèÒª107Ã룬ʹÓÃpsycoÖ®ºóÌá¸ßµ½27Ã룬½á¹¹ÓÅ»¯Ö®ºóÊÇ25Ã룬»¹ÊÇÎÞ·¨ÈÌÊÜ¡£ numpy¸ÄÔìºóËٶȷ´¶ø½µµ½60ÃëÁË£¬numpy.array´¦Àí¿ìЩ£¬µ«ÊÇ°Ñdata(sequence)ת³Énumpy.arrayËÙ¶ÈÌ«Âý¡£ ÓÃc++×ö²âÊÔ£¬Í¬µÈ¹¤×÷´ó¸ÅÖ»ÓÃ1Ãë¡£ÎÞÓï... Ö»ºÃÓÃc++À´×ö£¬ÎÊÌâÊÇÈçºÎ°ÑwxImage¶ÔÏóimg´«µÝ¸øc++×öµÄÄ£¿éÄØ£¬È»ºó´¦ÀíÍêÒÔºóÔÙ´«»ØÀ´£¿ ÍøÉÏ¿ÉÒÔ¿´µ½Ò»°ãµÄ¶ÔÏóµÄ´«µÝ½Ì³Ì£¬²»¹ý¶ÔÓÚwx¶ÔÏó²»ÊǺÜÓаÑÎÕ¡£ ÊÇ´«µÝimg¶ÔÏó(Ö¸Õ룩£¬»¹ÊÇ´«µÝdataÕâ¸ö¶ÔÏó£¨sequence)ÄØ£¿ Ï£ÍûµÄ½á¹ûÊÇ£º import fix img=wx.Image(path, wx.BITMAP_TYPE_ANY) img2=fix.fixcolor(img) # »òÕß img2=fix.fixcolor(img.GetData()) Äĸö·½·¨¸üºÃÄØ£¿ Çë¸÷λ¸ßÊÖÖ¸µãÃÔ½ò£¬²»Ê¤¸Ð¼¤£¬¸Ð¼¤ÌéÁã... -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20071101/7f742198/attachment.html
2007年11月01日 星期四 16:01
最简单的是将Python对象实例转换 成 Dict(如果你仅需访问该实例中的某些属性的话), 再传给你的 Cxx 函数, # python class Image: x = 1 y = 2 # class result = cfunc({"x" : image_inst.x, "y" : image_inst.y}) # for Cxx PyObject* cfunc(PyObject* image_dict) { if (!PyDict_Check(image_dict)) { return(NULL); } PyObject *key, *value; int index = 0; while (PyDict_Next(image_dict, &index;, &key;, &value;)) { // .... } PyObject* result = PyDict_New(); if (!PyDict_Check(result)) { return(NULL); } // ............ return(result); } Jacky Ford 写道: > 大家好,请教一个问题, > 我在开发一个图像处理软件, 原来在python中处理图像,需要对图像的每一个像 > 素的RGB进行处理 > import wx > ... > img = wx.Image(path, wx.BITMAP_TYPE_ANY) > img2 = fixcolor(img) #这是我做的图像处理函数 > ... > ... > def fixcolor(img): > data=img.GetData() > ... > #对data进行处理 > ... > 但是大图片速度处理太慢,600万像素需要107秒,使用psyco之后提高到27秒, > 结构优化之后是25秒,还是无法忍受。 > numpy改造后速度反而降到60秒了,numpy.array处理快些,但是把data > (sequence)转成numpy.array 速度太慢。 > 用c++做测试,同等工作大概只用1秒。无语... > 只好用c++来做,问题是如何把wxImage对象img传递给c++做的模块呢,然后处理 > 完以后再传回来? > 网上可以看到一般的对象的传递教程,不过对于wx对象不是很有把握。 > 是传递img对象(指针),还是传递data这个对象(sequence)呢? > 希望的结果是: > import fix > img=wx.Image(path, wx.BITMAP_TYPE_ANY) > img2=fix.fixcolor(img) # 或者 img2=fix.fixcolor(img.GetData()) 哪个方 > 法更好呢? > 请各位高手指点迷津,不胜感激,感激涕零... > ------------------------------------------------------------------------ > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2007年11月01日 星期四 17:14
考虑过多线程处理没有 在07-11-1,Jacky Ford <witmud在gmail.com> 写道: > > 大家好,请教一个问题, > 我在开发一个图像处理软件, 原来在python中处理图像,需要对图像的每一个像素的RGB进行处理 > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20071101/a3d982e2/attachment.htm
2007年11月04日 星期日 10:43
python/c apiËƺõÓеãÂé·³£¬ÄÜ·ñÔÚswig£¬boostÖ®¼äÍƼöһϡ£ ¹Ø¼üÊÇ´« wxImageµÄÖ¸Õ룬»¹ÊÇwxImage.GetData()ºóµÄsequences. On 11/1/07, Alec <huanghao.c在gmail.com> wrote: > > ×î¼òµ¥µÄÊǽ«Python¶ÔÏóʵÀýת»» > ³É Dict(Èç¹ûÄã½öÐè·ÃÎʸÃʵÀýÖеÄijЩÊôÐԵĻ°£©, > ÔÙ´«¸øÄãµÄ Cxx º¯Êý, > > # python > class Image: > x = 1 > y = 2 > # class > result = cfunc({"x" : image_inst.x, "y" : image_inst.y}) > > # for Cxx > PyObject* cfunc(PyObject* image_dict) { > if (!PyDict_Check(image_dict)) { > return(NULL); > } > PyObject *key, *value; > int index = 0; > while (PyDict_Next(image_dict, &index;, &key;, &value;)) { > // .... > } > PyObject* result = PyDict_New(); > if (!PyDict_Check(result)) { > return(NULL); > } > // ............ > return(result); > } > > > Jacky Ford дµÀ: > > ´ó¼ÒºÃ£¬Çë½ÌÒ»¸öÎÊÌ⣬ > > ÎÒÔÚ¿ª·¢Ò»¸öͼÏñ´¦ÀíÈí¼þ, ÔÀ´ÔÚpythonÖд¦ÀíͼÏñ£¬ÐèÒª¶ÔͼÏñµÄÿһ¸öÏñ > > ËصÄRGB½øÐд¦Àí > > import wx > > ... > > img = wx.Image(path, wx.BITMAP_TYPE_ANY) > > img2 = fixcolor£¨img) #ÕâÊÇÎÒ×öµÄͼÏñ´¦Àíº¯Êý > > ... > > ... > > def fixcolor(img): > > data=img.GetData() > > ... > > #¶Ôdata½øÐд¦Àí > > ... > > µ«ÊÇ´óͼƬËٶȴ¦ÀíÌ«Âý£¬600ÍòÏñËØÐèÒª107Ã룬ʹÓÃpsycoÖ®ºóÌá¸ßµ½27Ã룬 > > ½á¹¹ÓÅ»¯Ö®ºóÊÇ25Ã룬»¹ÊÇÎÞ·¨ÈÌÊÜ¡£ > > numpy¸ÄÔìºóËٶȷ´¶ø½µµ½60ÃëÁË£¬numpy.array´¦Àí¿ìЩ£¬µ«ÊÇ°Ñdata > > (sequence)ת³Énumpy.array ËÙ¶ÈÌ«Âý¡£ > > ÓÃc++×ö²âÊÔ£¬Í¬µÈ¹¤×÷´ó¸ÅÖ»ÓÃ1Ãë¡£ÎÞÓï... > > Ö»ºÃÓÃc++À´×ö£¬ÎÊÌâÊÇÈçºÎ°ÑwxImage¶ÔÏóimg´«µÝ¸øc++×öµÄÄ£¿éÄØ£¬È»ºó´¦Àí > > ÍêÒÔºóÔÙ´«»ØÀ´£¿ > > ÍøÉÏ¿ÉÒÔ¿´µ½Ò»°ãµÄ¶ÔÏóµÄ´«µÝ½Ì³Ì£¬²»¹ý¶ÔÓÚwx¶ÔÏó²»ÊǺÜÓаÑÎÕ¡£ > > ÊÇ´«µÝimg¶ÔÏó(Ö¸Õ룩£¬»¹ÊÇ´«µÝdataÕâ¸ö¶ÔÏó£¨sequence)ÄØ£¿ > > Ï£ÍûµÄ½á¹ûÊÇ£º > > import fix > > img=wx.Image(path, wx.BITMAP_TYPE_ANY) > > img2=fix.fixcolor(img) # »òÕß img2=fix.fixcolor(img.GetData()) Äĸö·½ > > ·¨¸üºÃÄØ£¿ > > Çë¸÷λ¸ßÊÖÖ¸µãÃÔ½ò£¬²»Ê¤¸Ð¼¤£¬¸Ð¼¤ÌéÁã... > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > python-chinese > > Post: send python-chinese在lists.python.cn > > Subscribe: send subscribe to python-chinese-request在lists.python.cn > > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20071104/6ae0470d/attachment.html
Zeuux © 2025
京ICP备05028076号