{"id":27515,"date":"2024-03-16T08:36:03","date_gmt":"2024-03-16T08:36:03","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/"},"modified":"2024-03-22T11:13:26","modified_gmt":"2024-03-22T11:13:26","slug":"how-to-filter-bar-regions-in-python","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/","title":{"rendered":"How to filter bar regions in Python."},"content":{"rendered":"<p>To filter out rectangular areas, you can use the OpenCV library for image processing and analysis. Below is an example implemented in Python demonstrating how to use OpenCV to filter rectangular areas.<\/p>\n<p>Firstly, install the OpenCV library.<\/p>\n<pre class=\"post-pre\"><code>pip install opencv-python\r\n<\/code><\/pre>\n<p>Next, load the image using the following code and perform preprocessing:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> cv2\r\n<span class=\"hljs-keyword\">import<\/span> numpy <span class=\"hljs-keyword\">as<\/span> np\r\n\r\nimage = cv2.imread(<span class=\"hljs-string\">\"image.jpg\"<\/span>)  <span class=\"hljs-comment\"># \u52a0\u8f7d\u56fe\u50cf<\/span>\r\ngray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  <span class=\"hljs-comment\"># \u8f6c\u6362\u4e3a\u7070\u5ea6\u56fe\u50cf<\/span>\r\nblurred = cv2.GaussianBlur(gray, (<span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">5<\/span>), <span class=\"hljs-number\">0<\/span>)  <span class=\"hljs-comment\"># \u5bf9\u7070\u5ea6\u56fe\u50cf\u8fdb\u884c\u9ad8\u65af\u6a21\u7cca<\/span>\r\n\r\n<span class=\"hljs-comment\"># \u6267\u884c\u8fb9\u7f18\u68c0\u6d4b<\/span>\r\nedges = cv2.Canny(blurred, <span class=\"hljs-number\">50<\/span>, <span class=\"hljs-number\">150<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u6267\u884c\u970d\u592b\u76f4\u7ebf\u68c0\u6d4b<\/span>\r\nlines = cv2.HoughLinesP(edges, <span class=\"hljs-number\">1<\/span>, np.pi \/ <span class=\"hljs-number\">180<\/span>, <span class=\"hljs-number\">100<\/span>, minLineLength=<span class=\"hljs-number\">100<\/span>, maxLineGap=<span class=\"hljs-number\">10<\/span>)\r\n<\/code><\/pre>\n<p>Next, the detected lines can be further filtered as needed. For example, lines can be filtered based on their slope, keeping only those within a specific range.<\/p>\n<pre class=\"post-pre\"><code>filtered_lines = []\r\n<span class=\"hljs-keyword\">for<\/span> line <span class=\"hljs-keyword\">in<\/span> lines:\r\n    x1, y1, x2, y2 = line[<span class=\"hljs-number\">0<\/span>]\r\n    slope = (y2 - y1) \/ (x2 - x1)  <span class=\"hljs-comment\"># \u8ba1\u7b97\u659c\u7387<\/span>\r\n    <span class=\"hljs-keyword\">if<\/span> <span class=\"hljs-built_in\">abs<\/span>(slope) &gt; <span class=\"hljs-number\">0.5<\/span> <span class=\"hljs-keyword\">and<\/span> <span class=\"hljs-built_in\">abs<\/span>(slope) &lt; <span class=\"hljs-number\">2<\/span>:  <span class=\"hljs-comment\"># \u7b5b\u9009\u659c\u7387\u57280.5\u548c2\u4e4b\u95f4\u7684\u76f4\u7ebf<\/span>\r\n        filtered_lines.append(line)\r\n<\/code><\/pre>\n<p>Finally, the filtered straight lines can be drawn onto the original image for observation of the results.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">for<\/span> line <span class=\"hljs-keyword\">in<\/span> filtered_lines:\r\n    x1, y1, x2, y2 = line[<span class=\"hljs-number\">0<\/span>]\r\n    cv2.line(image, (x1, y1), (x2, y2), (<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">0<\/span>), <span class=\"hljs-number\">2<\/span>)  <span class=\"hljs-comment\"># \u7ed8\u5236\u76f4\u7ebf<\/span>\r\n\r\ncv2.imshow(<span class=\"hljs-string\">\"Result\"<\/span>, image)\r\ncv2.waitKey(<span class=\"hljs-number\">0<\/span>)\r\ncv2.destroyAllWindows()\r\n<\/code><\/pre>\n<p>In this way, you can find the rectangular area by filtering lines with slopes within a specific range. Adjusting the parameters based on the actual situation can yield better results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To filter out rectangular areas, you can use the OpenCV library for image processing and analysis. Below is an example implemented in Python demonstrating how to use OpenCV to filter rectangular areas. Firstly, install the OpenCV library. pip install opencv-python Next, load the image using the following code and perform preprocessing: import cv2 import numpy [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-27515","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to filter bar regions in Python. - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to filter bar regions in Python.\" \/>\n<meta property=\"og:description\" content=\"To filter out rectangular areas, you can use the OpenCV library for image processing and analysis. Below is an example implemented in Python demonstrating how to use OpenCV to filter rectangular areas. Firstly, install the OpenCV library. pip install opencv-python Next, load the image using the following code and perform preprocessing: import cv2 import numpy [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T08:36:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T11:13:26+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"How to filter bar regions in Python.\",\"datePublished\":\"2024-03-16T08:36:03+00:00\",\"dateModified\":\"2024-03-22T11:13:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\"},\"wordCount\":129,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\",\"name\":\"How to filter bar regions in Python. - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T08:36:03+00:00\",\"dateModified\":\"2024-03-22T11:13:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to filter bar regions in Python.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to filter bar regions in Python. - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How to filter bar regions in Python.","og_description":"To filter out rectangular areas, you can use the OpenCV library for image processing and analysis. Below is an example implemented in Python demonstrating how to use OpenCV to filter rectangular areas. Firstly, install the OpenCV library. pip install opencv-python Next, load the image using the following code and perform preprocessing: import cv2 import numpy [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T08:36:03+00:00","article_modified_time":"2024-03-22T11:13:26+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"How to filter bar regions in Python.","datePublished":"2024-03-16T08:36:03+00:00","dateModified":"2024-03-22T11:13:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/"},"wordCount":129,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/","name":"How to filter bar regions in Python. - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T08:36:03+00:00","dateModified":"2024-03-22T11:13:26+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-filter-bar-regions-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to filter bar regions in Python."}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=27515"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27515\/revisions"}],"predecessor-version":[{"id":61750,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27515\/revisions\/61750"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=27515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=27515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=27515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}