Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¼¸ÖÖ±ßÔµ¼ì²âËã·¨¶Ô±È¼°python´úÂëʵÏÖ
 
×÷ÕߣºOoo¡£
  5082  次浏览      27
 2020-9-23  
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËSobelËã×Ó¡¢CannyËã×Ó¡¢LaplacianËã×ÓµÈÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚ csdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­£¬ÍƼö¡£

±ßÔµ¼ì²â£¨±ßÔµÌáÈ¡£©ÊÇͼÏñÂ˲¨µÄÒ»ÖÖ£¬×î³£ÓõÄÖ÷ÒªÓÐÈýÖÖ£¬SobelËã×Ó£¬LaplacianËã×Ó£¬CannyËã×Ó¡£

1¡¢SobelËã×Ó

SobelËã×Ó¼ì²â·½·¨¶Ô»Ò¶È½¥±äºÍÔëÉù½Ï¶àµÄͼÏñ´¦ÀíЧ¹û½ÏºÃ£¬sobelËã×Ó¶Ô±ßÔµ¶¨Î»²»ÊǺÜ׼ȷ£¬Í¼ÏñµÄ±ßÔµ²»Ö¹Ò»¸öÏñËØ£»µ±¶Ô¾«¶ÈÒªÇó²»ÊǺܸßʱ£¬ÊÇÒ»ÖÖ½ÏΪ³£ÓõıßÔµ¼ì²â·½·¨¡£ÊÇ´øÓз½ÏòµÄ¡£

ÔÚopencv-pythonÖУ¬SobelËã×ÓµÄÖ÷º¯Êý´úÂëΪ£º

dst = cv2.Sobel(src, ddepth, dx, dy [, dst[, ksize[, scale[, delta[, borderType]]]]])

ǰËĸöÊDZØÐëµÄ²ÎÊý£º

µÚÒ»¸ö²ÎÊýÊÇÐèÒª´¦ÀíµÄͼÏñ£»

µÚ¶þ¸ö²ÎÊýÊÇͼÏñµÄÉî¶È£¬-1±íʾ²ÉÓõÄÊÇÓëԭͼÏñÏàͬµÄÉî¶È¡£Ä¿±êͼÏñµÄÉî¶È±ØÐë´óÓÚµÈÓÚԭͼÏñµÄÉî¶È£»

dxºÍdy±íʾµÄÊÇÇ󵼵Ľ×Êý£¬0±íʾÕâ¸ö·½ÏòÉÏûÓÐÇóµ¼£¬Ò»°ãΪ0¡¢1¡¢2¡£

ºó±ß¶¼ÊÇ¿ÉÑ¡µÄ²ÎÊý£º

dstÊÇÊä³öͼÏñ£»

ksizeÊÇSobelËã×ӵĴóС£¬±ØÐëΪ1¡¢3¡¢5¡¢7¡£

scaleÊÇËõ·Åµ¼ÊýµÄ±ÈÀý³£Êý£¬Ä¬ÈÏÇé¿öÏÂûÓÐÉìËõϵÊý£»

deltaÊÇÒ»¸ö¿ÉÑ¡µÄÔöÁ¿£¬½«»á¼Óµ½×îÖÕµÄdstÖУ¬Í¬Ñù£¬Ä¬ÈÏÇé¿öÏÂûÓжîÍâµÄÖµ¼Óµ½dstÖУ»

borderTypeÊÇÅжÏͼÏñ±ß½çµÄģʽ¡£Õâ¸ö²ÎÊýĬÈÏֵΪcv2.BORDER_DEFAULT¡£

ÕûÌå´úÂëÈçÏ£º

#coding=utf-8
import cv2
import numpy as np
img = cv2.imread("D:/lion.jpg", 0)
x = cv2.Sobel(img,cv2.CV_16S,1,0)
y = cv2.Sobel(img,cv2.CV_16S,0,1)
absX = cv2.convertScaleAbs(x) # ת»Øuint8
absY = cv2.convertScaleAbs(y)
dst = cv2.addWeighted(absX,0.5,absY,0.5,0)
cv2.imshow("absX", absX)
cv2.imshow("absY", absY)
cv2.imshow("Result", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

ÔÚSobelº¯ÊýµÄµÚ¶þ¸ö²ÎÊýÕâÀïʹÓÃÁËcv2.CV_16S¡£ÒòΪOpenCVÎĵµÖжÔSobelËã×ӵĽéÉÜÖÐÓÐÕâôһ¾ä£º¡°in the case of 8-bit input images it will result in truncated derivatives¡±¡£¼´Sobelº¯ÊýÇóÍêµ¼Êýºó»áÓиºÖµ£¬»¹Óлá´óÓÚ255µÄÖµ¡£¶øÔ­Í¼ÏñÊÇuint8£¬¼´8λÎÞ·ûºÅÊý£¬ËùÒÔSobel½¨Á¢µÄͼÏñλÊý²»¹»£¬»áÓнضϡ£Òò´ËҪʹÓÃ16λÓзûºÅµÄÊý¾ÝÀàÐÍ£¬¼´cv2.CV_16S¡£

ÔÚ¾­¹ý´¦Àíºó£¬±ðÍüÁËÓÃconvertScaleAbs()º¯Êý½«Æäת»ØÔ­À´µÄuint8ÐÎʽ¡£·ñÔò½«ÎÞ·¨ÏÔʾͼÏñ£¬¶øÖ»ÊÇÒ»¸±»ÒÉ«µÄ´°¿Ú¡£convertScaleAbs()µÄÔ­ÐÍΪ£º

dst = cv2.convertScaleAbs(src [, dst[, alpha[, beta]]])

ÆäÖпÉÑ¡²ÎÊýalphaÊÇÉìËõϵÊý£¬betaÊǼӵ½½á¹ûÉϵÄÒ»¸öÖµ¡£½á¹û·µ»Øuint8ÀàÐ͵ÄͼƬ¡£

ÓÉÓÚSobelËã×ÓÊÇÔÚÁ½¸ö·½Ïò¼ÆËãµÄ£¬×îºó»¹ÐèÒªÓÃcv2.addWeighted(...)º¯Êý½«Æä×éºÏÆðÀ´¡£Æäº¯ÊýÔ­ÐÍΪ£º

dst = cv2.addWeighted (src1, alpha, src2, beta, gamma[, dst[, dtype]])

ÆäÖÐalphaÊǵÚÒ»·ùͼƬÖÐÔªËØµÄÈ¨ÖØ£¬betaÊǵڶþ¸öµÄÈ¨ÖØ£¬gammaÊǼӵ½×îºó½á¹ûÉϵÄÒ»¸öÖµ¡£

2¡¢CannyËã×Ó

Canny·½·¨²»ÈÝÒ×ÊÜÔëÉù¸ÉÈÅ£¬Äܹ»¼ì²âµ½ÕæÕýµÄÈõ±ßÔµ¡£ÓŵãÔÚÓÚ£¬Ê¹ÓÃÁ½ÖÖ²»Í¬µÄãÐÖµ·Ö±ð¼ì²âÇ¿±ßÔµºÍÈõ±ßÔµ£¬²¢ÇÒµ±Èõ±ßÔµºÍÇ¿±ßÔµÏàÁ¬Ê±£¬²Å½«Èõ±ßÔµ°üº¬ÔÚÊä³öͼÏñÖС£

Canny±ßÔµ¼ì²âËã·¨¿ÉÒÔ·ÖΪÒÔÏÂ5¸ö²½Ö裺

1) ʹÓøß˹Â˲¨Æ÷£¬ÒÔÆ½»¬Í¼Ïñ£¬Â˳ýÔëÉù¡£

2) ¼ÆËãͼÏñÖÐÿ¸öÏñËØµãµÄÌݶÈÇ¿¶ÈºÍ·½Ïò¡£

3) Ó¦Ó÷Ǽ«´óÖµ£¨Non-Maximum Suppression£©ÒÖÖÆ£¬ÒÔÏû³ý±ßÔµ¼ì²â´øÀ´µÄÔÓÉ¢ÏìÓ¦¡£

4) Ó¦ÓÃË«ãÐÖµ£¨Double-Threshold£©¼ì²âÀ´È·¶¨ÕæÊµµÄºÍDZÔڵıßÔµ¡£

5) ͨ¹ýÒÖÖÆ¹ÂÁ¢µÄÈõ±ßÔµ×îÖÕÍê³É±ßÔµ¼ì²â¡£

ÔÚÊ©¼Ó·Ç¼«´óÖµÒÖÖÆÖ®ºó£¬Ê£ÓàµÄÏñËØ¿ÉÒÔ¸ü׼ȷµØ±íʾͼÏñÖеÄʵ¼Ê±ßÔµ¡£È»¶ø£¬ÈÔÈ»´æÔÚÓÉÓÚÔëÉùºÍÑÕÉ«±ä»¯ÒýÆðµÄһЩ±ßÔµÏñËØ¡£ÎªÁ˽â¾öÕâЩÔÓÉ¢ÏìÓ¦£¬±ØÐëÓÃÈõÌݶÈÖµ¹ýÂ˱ßÔµÏñËØ£¬²¢±£Áô¾ßÓиßÌݶÈÖµµÄ±ßÔµÏñËØ£¬¿ÉÒÔͨ¹ýÑ¡Ôñ¸ßµÍãÐÖµÀ´ÊµÏÖ¡£Èç¹û±ßÔµÏñËØµÄÌݶÈÖµ¸ßÓÚ¸ßãÐÖµ£¬Ôò½«Æä±ê¼ÇΪǿ±ßÔµÏñËØ£»Èç¹û±ßÔµÏñËØµÄÌݶÈֵСÓÚ¸ßãÐÖµ²¢ÇÒ´óÓÚµÍãÐÖµ£¬Ôò½«Æä±ê¼ÇΪÈõ±ßÔµÏñËØ£»Èç¹û±ßÔµÏñËØµÄÌݶÈֵСÓÚµÍãÐÖµ£¬Ôò»á±»ÒÖÖÆ¡£ãÐÖµµÄÑ¡ÔñÈ¡¾öÓÚ¸ø¶¨ÊäÈëͼÏñµÄÄÚÈÝ¡£

±»»®·ÖΪǿ±ßÔµµÄÏñËØµãÒѾ­±»È·¶¨Îª±ßÔµ£¬ÒòΪËüÃÇÊÇ´ÓͼÏñÖеÄÕæÊµ±ßÔµÖÐÌáÈ¡³öÀ´µÄ¡£È»¶ø£¬¶ÔÓÚÈõ±ßÔµÏñËØ£¬½«»áÓÐһЩÕùÂÛ£¬ÒòΪÕâЩÏñËØ¿ÉÒÔ´ÓÕæÊµ±ßÔµÌáȡҲ¿ÉÒÔÊÇÒòÔëÉù»òÑÕÉ«±ä»¯ÒýÆðµÄ¡£ÎªÁË»ñµÃ׼ȷµÄ½á¹û£¬Ó¦¸ÃÒÖÖÆÓɺóÕßÒýÆðµÄÈõ±ßÔµ¡£Í¨³££¬ÓÉÕæÊµ±ßÔµÒýÆðµÄÈõ±ßÔµÏñËØ½«Á¬½Óµ½Ç¿±ßÔµÏñËØ£¬¶øÔëÉùÏìӦδÁ¬½Ó¡£ÎªÁ˸ú×Ù±ßÔµÁ¬½Ó£¬Í¨¹ý²é¿´Èõ±ßÔµÏñËØ¼°Æä8¸öÁÚÓòÏñËØ£¬Ö»ÒªÆäÖÐÒ»¸öΪǿ±ßÔµÏñËØ£¬Ôò¸ÃÈõ±ßÔµµã¾Í¿ÉÒÔ±£ÁôÎªÕæÊµµÄ±ßÔµ¡£

CannyµÄÊäÈëÊǾ­¹ý»Ò¶È»¯µÄµ¥Í¨µÀͼ¡£

ÔÚopencv-pythonÖУ¬CannyËã×ÓµÄÖ÷º¯Êý´úÂëΪ£º

edge = cv2.Canny (image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]])

±ØÒª²ÎÊý£º

µÚÒ»¸ö²ÎÊýÊÇÐèÒª´¦ÀíµÄԭͼÏñ£¬¸ÃͼÏñ±ØÐëΪµ¥Í¨µÀµÄ»Ò¶Èͼ£»

µÚ¶þ¸ö²ÎÊýÊÇãÐÖµ1£»

µÚÈý¸ö²ÎÊýÊÇãÐÖµ2¡£

ÆäÖнϴóµÄãÐÖµ2ÓÃÓÚ¼ì²âͼÏñÖÐÃ÷ÏԵıßÔµ£¬µ«Ò»°ãÇé¿öϼì²âµÄЧ¹û²»»áÄÇôÍêÃÀ£¬±ßÔµ¼ì²â³öÀ´ÊǶ϶ÏÐøÐøµÄ¡£ËùÒÔÕâʱºòÓýÏСµÄµÚÒ»¸öãÐÖµÓÃÓÚ½«ÕâЩ¼ä¶ÏµÄ±ßÔµÁ¬½ÓÆðÀ´¡£

¿ÉÑ¡²ÎÊýÖÐapertureSize¾ÍÊÇSobelËã×ӵĴóС£¬Ä¬ÈÏΪ3¡£¶øL2gradient²ÎÊýÊÇÒ»¸ö²¼¶ûÖµ£¬Èç¹ûÎªÕæ£¬ÔòʹÓøü¾«È·µÄL2·¶Êý½øÐмÆË㣨¼´Á½¸ö·½ÏòµÄµ¹ÊýµÄƽ·½ºÍÔÙ¿ª·Å£©£¬·ñÔòʹÓÃL1·¶Êý£¨Ö±½Ó½«Á½¸ö·½Ïòµ¼ÊýµÄ¾ø¶ÔÖµÏà¼Ó£©¡£

º¯Êý·µ»ØÒ»¸±¶þֵͼ£¬ÆäÖаüº¬¼ì²â³öµÄ±ßÔµ¡£

ÍêÕû´úÂëΪ£º

#coding=utf-8
import cv2
import numpy as np
img = cv2.imread("D:/lion.jpg", 0)
img = cv2.GaussianBlur(img,(3,3),0) #Óøß˹ƽ»¬´¦ÀíԭͼÏñ½µÔë¡£
canny = cv2.Canny(img, 50, 150) #×î´ó×îСãÐÖµ
cv2.imshow('Canny', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()

3¡¢LaplacianËã×Ó

LaplacianËã×ÓÊÇÒ»ÖÖ¶þ½×΢·ÖËã×Ó¡£¶ÔÔëÉù±È½ÏÃô¸Ð£¬ËùÒÔºÜÉÙÓøÃËã×Ó¼ì²â±ßÔµ£¬¶øÊÇÓÃÀ´ÅжϱßÔµÏñËØÊÓΪÓëͼÏñµÄÃ÷Çø»¹ÊǰµÇø¡£À­ÆÕÀ­Ë¹¸ß˹Ëã×ÓÊÇÒ»ÖÖ¶þ½×µ¼ÊýËã×Ó£¬½«ÔÚ±ßÔµ´¦²úÉúÒ»¸ö¶¸Ç͵ÄÁã½»²æ, LaplacianËã×ÓÊǸ÷ÏòͬÐԵģ¬ÄܶÔÈκÎ×ßÏòµÄ½çÏߺÍÏßÌõ½øÐÐÈñ»¯£¬ÎÞ·½ÏòÐÔ¡£ÕâÊÇÀ­ÆÕÀ­Ë¹Ëã×ÓÇø±ðÓÚÆäËûËã·¨µÄ×î´óÓŵ㡣

ÔÚopencv-pythonÖУ¬LaplacianËã×ÓµÄÖ÷º¯Êý´úÂëΪ;

²ÎÊýµÄº¬ÒåÀàËÆÓÚsobelËã×Ó£º

ǰÁ½¸öÊDZØÐëµÄ²ÎÊý£º

µÚÒ»¸ö²ÎÊýÊÇÐèÒª´¦ÀíµÄͼÏñ£»

µÚ¶þ¸ö²ÎÊýÊÇͼÏñµÄÉî¶È£¬-1±íʾ²ÉÓõÄÊÇÓëԭͼÏñÏàͬµÄÉî¶È¡£Ä¿±êͼÏñµÄÉî¶È±ØÐë´óÓÚµÈÓÚԭͼÏñµÄÉî¶È£»

ÆäºóÊÇ¿ÉÑ¡µÄ²ÎÊý£º

dst²»ÓýâÊÍÁË£»

ksizeÊÇËã×ӵĴóС£¬±ØÐëΪ1¡¢3¡¢5¡¢7¡£Ä¬ÈÏΪ1¡£

scaleÊÇËõ·Åµ¼ÊýµÄ±ÈÀý³£Êý£¬Ä¬ÈÏÇé¿öÏÂûÓÐÉìËõϵÊý£»

deltaÊÇÒ»¸ö¿ÉÑ¡µÄÔöÁ¿£¬½«»á¼Óµ½×îÖÕµÄdstÖУ¬Í¬Ñù£¬Ä¬ÈÏÇé¿öÏÂûÓжîÍâµÄÖµ¼Óµ½dstÖУ»

borderTypeÊÇÅжÏͼÏñ±ß½çµÄģʽ¡£Õâ¸ö²ÎÊýĬÈÏֵΪcv2.BORDER_DEFAULT¡£

ÍêÕû´úÂëΪ£º

#coding=utf-8
import cv2
import numpy as np
img = cv2.imread("D:/lion.jpg", 0)
gray_lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)
dst = cv2.convertScaleAbs(gray_lap)
cv2.imshow('laplacian',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

Ò²¿ÉÒÔÏñcannyËã×ÓÖеĴúÂëÒ»Ñù£¬ÏȾ­¹ýһЩÂ˲¨À´½µÔ룬ȻºóÔÙ×ö±ßÔµ¼ì²â¡£

 

 
   
5082 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
¼òÊöMatplotlib
PythonÈýά»æÍ¼--Matplotlib
PythonÊý¾ÝÇåϴʵ¼ù
PyTorchʵսָÄÏ
PythonÅÀ³æÓëÊý¾Ý¿ÉÊÓ»¯
×îпγÌ
PythonÓ¦Óÿª·¢×î¼Ñʵ¼ù
Python+Êý¾Ý·ÖÎö+tensorflow
Python ±à³Ì·½·¨ºÍÓ¦Óÿª·¢
È˹¤ÖÇÄÜ+Python£«´óÊý¾Ý
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
ijÁìÏÈÊý×ÖµØÍ¼ÌṩÉÌ PythonÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰ
±±¾© Python¼°Êý¾Ý·ÖÎö
ij½ðÈÚ¹«Ë¾ Python±à³Ì·½·¨Óëʵ¼ùÅàѵ