python实现超大图像的二值化方法
一,分块处理超大图像的二值化问题
(1) 全局阈值处理
(2) 局部阈值
二,空白区域过滤
三,先缩放进行二值化,然后还原大小
np.mean() 返回数组元素的平均值
np.std() 返回数组元素的标准差
一,分块处理超大图像的二值化问题
(1) 全局阈值处理
(2) 局部阈值
1 import cv2 as cv
2 import numpy as np
3
4 """
5 def big_image_binary(image):
6 print(image.shape) #(4208, 2368, 3) #超大图像,屏幕无法显示完整
7 cw,ch = 256,256
8 h,w = image.shape[:2]
9 gray = cv.cvtColor(image,cv.COLOR_RGB2GRAY) #要二值化图像,要先进行灰度化处理
10 for row in range(0,h,ch):
11 for col in range(0,w,cw):
12 roi = gray[row:row+ch,col:col+cw] #获取分块
13 #全局阈值
14 # ret,binary = cv.threshold(roi,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
15
16
17 #局部阈值
18 binary = cv.adaptiveThreshold(roi,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY,127,20)
19 gray[row:row + ch, col:col + cw] = binary #分块覆盖
20 print(np.std(binary),np.mean(binary))
21
22 cv.imwrite("binary2.jpg",gray)
二,空白区域过滤
1 #空白区域过滤
2 def big_image_binary(image):
3 print(image.shape)
4 # 分成小块,每一块的宽高
5 cw = 256
6 ch = 256
7 #整个图像的宽高
8 h, w = image.shape[:2]
9 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
10 #步长 ch cw
11 for row in range(0, h, ch):
12 for col in range(0, w, cw):
13 #获取分块(感兴趣区域)
14 roi = gray[row:row+ch, col:cw+col]
15 print(np.std(roi), np.mean(roi))
16 dev = np.std(roi)
17 if dev < 15:
18 gray[row:row + ch, col:cw + col] = 255 #dev < 15的让它变白
19 else:
20 ret, dst = cv.threshold(roi, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
21 gray[row:row + ch, col:cw + col] = dst
22 cv.imwrite("D:/vcprojects/result_binary.png", gray)
23
24
25 print("--------- Python OpenCV Tutorial ---------")
26 src = cv.imread("D:/vcprojects/images/red_text2.png")
27 #cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
28 #cv.imshow("input image", src)
29 big_image_binary(src)
30 cv.waitKey(0)
31
32 cv.destroyAllWindows()
33 big_image_binary(src)
34 cv.waitKey(0)
35
36 cv.destroyAllWindows()
参考:
https://blog.csdn.net/weixin_41722450/article/details/104265595
python实现超大图像的二值化方法的更多相关文章
- OpenCV图像的二值化
图像的二值化: 与边缘检测相比,轮廓检测有时能更好的反映图像的内容.而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出 ...
- OpenCV中对图像进行二值化的关键函数——cvThreshold()。
函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* src, CvArr* dst, double threshold, doub ...
- 二值化方法:Kittler:Minimum Error Thresholding
Kittler二值化方法,是一种经典的基于直方图的二值化方法.由J. Kittler在1986年发表的论文“Minimum Error Thresholding”提出.论文是对贝叶斯最小错误阈值的准则 ...
- 数学思想方法-python计算战(8)-机器视觉-二值化
二值化 hreshold Applies a fixed-level threshold to each array element. C++: double threshold(InputArray ...
- 实现图像的二值化(java+opencv)
书里的解释: 其他的没找到什么资料,直接参考百度百科 https://baike.baidu.com/item/%E5%9B%BE%E5%83%8F%E4%BA%8C%E5%80%BC%E5%8C%9 ...
- [python-opencv]超大图像二值化方法
*分块 *全局阈值 VS 局部阈值 import cv2 as cv import numpy as np def big_image_binary(image): print(image.shape ...
- opencv 对RGB图像直接二值化
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- python 读取、保存、二值化、灰度化图片+opencv处理图片的方法
http://blog.csdn.net/johinieli/article/details/69389980
- OpenCV---超大图像二值化和空白区域过滤
超大图像的二值化方法 1.可以采用分块方法, 2.先缩放处理就行二值化,然后还原大小 一:分块处理超大图像的二值化问题 def big_image_binary(image): print(image ...
随机推荐
- 11.2.0.4 RAC manual opatch
1.Stop the CRS managed resources running from DB homes. If this is a GI Home environment, as the dat ...
- 修改MySql Root密码(包含忘记密码的方式)
曾几何时,我也是记得MySQL root密码的人,想要修改root密码还不是轻而易举的事?下面前三种修改改方式都是在记得密码的情况下进行修改,如果你忘记了原本的root,请直接跳至 终极 第一种: 在 ...
- 都 2021 年了,Serverless 能取代微服务吗?
来源 | Serverless 公众号 编译 | OrangeJ 作者 | Mariliis Retter "Serverless 能取代微服务吗?" 这是知乎上 Serverle ...
- 1002 写出这个数 (20 分) java解题
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10^100. 输出格式: 在一行内输 ...
- 3.3 Execution Flow of a DDD Based Application 基于DDD的应用程序执行流程
3.3 Execution Flow of a DDD Based Application 基于DDD的应用程序执行流程 The figure below shows a typical reques ...
- iNeuOS工业互联网操作系统,智慧用电测控应用案例
目 录 1. 概述... 2 2. 系统部署结构... 2 3. 用电测控终端... 3 4. 系统应用介绍... 6 1. 概述 通过物联网技 ...
- HTTP请求如何带参
这两天正好作一份API的接口文档,关于HTTP request如何传递参数不是很清楚,这里转载了他人的文档,让我明白了很多.. http://tomfish88.iteye.com/category/ ...
- Alpha Scrum Meeting汇总
第一次Alpha Scrum Meeting 第二次Alpha Scrum Meeting 第三次Alpha Scrum Meeting 第四次Alpha Scrum Meeting 第五次Alpha ...
- AFO记
希望永远也不要动笔写这个. 发以自勉
- 设计的MOS管三极管简单开关电路驱动能力不够2
设计的MOS管三极管简单开关电路驱动能力不够 [复制链接] lxizj 9 主题 454 帖子 1783 积分 四级会员(40) 积分 1783 发消息 16# 发表于 2012-4-23 ...