matlab的imshow python中cv2.imshow及plt.imshow相关测试
在对灰度图、二值图测试显示过程中,发现matlab的imshow函数和plt.imshow函数显示的图像会出现信息缺失情况,让人误以为图像矩阵像素值发生变化。经过测试,是由于imshow函数存在像素缩放导致。可通过缩放原图,或者放大结果图像进行完整信息显示。
- matlab: imshow
function Testimshow()img = imread('demoshape.png');if(numel(size(img)) > 2)img = rgb2gray(img);end% img = imresize(img,[300,400]); % 缩小图像px = img(2:end,:) - img(1:end-1,:); % 数据类型均为uint8, 负数强制为0. python中负数强制为其补数qy = img(:,2:end) - img(:,1:end-1);figuresubplot(131)imshow(img)title('img')subplot(132)imshow(px)title('px')subplot(133)imshow(qy)title('qy')end
因为图片过大,导致有些信息无法显示,通过缩小原图,或者直接对结果进行放大可以看到另一条边缘:
- plt.imshow 同样存在该问题
def TestCV_plt():img = cv2.imread('./imgs/others/img/demoshape.png',0)H,W = img.shape# img = cv2.imresize(img,[400,300]) # [列数,行数]imglight = img[1:H, :]imgdark = img[0:H - 1, :]px = CalcImgDiff(imglight,imgdark,0)imglight = img[:,1:W]imgdark = img[:,0:W-1]qy = CalcImgDiff(imglight, imgdark,0)cv2.imshow('px',px)cv2.imshow('qy',qy)cv2.waitKey(0)plt.figure()# plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.05, hspace=0.05)# plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.05)plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.05, hspace=0.1)plt.subplot(221)plt.imshow(px,'gray')plt.subplot(222)plt.imshow(qy, 'gray')plt.subplot(223)plt.imshow(px, 'gray',vmin=0,vmax=255)plt.subplot(224)plt.imshow(qy, 'gray',vmin=0,vmax=255)plt.show()
plt.imshow会自动对灰度图进行图像增强处理, 可以通过vmin和vmax调节线性灰度变换效果.
类似matlab中操作,通过缩小原图,或者改变子图间距来调整显示结果。
- cv2.imshow 不存在该问题
cv2.imshow对图像进行原图显示,不会进行像素缩放,所以显示完整可靠。
matlab的imshow python中cv2.imshow及plt.imshow相关测试相关推荐
- python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题
当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...
- python plt.show_解决python中显示图片的plt.imshow plt.show()内存泄漏问题
当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...
- opencv python 中cv2.putText()函数的用法
opencv python 中cv2.putText()函数的用法 文章目录: 一.快速使用 二.官方文档 三.使用举例 虽然用啦很多次,还是决定记录一下 一.快速使用 cv2.putText(ima ...
- python中cv2、Image和plt的图片打开、显示和保存
使用cv2.Image.plt打开.显示和保存图片 文章目录 使用cv2.Image.plt打开.显示和保存图片 0.读取图片 1.使用cv2显示cv2打开的图片 2.使用cv2显示Image打开的图 ...
- 基于python中cv2库的图像分割
一.概念 1.简述Radon变换检测直线的原理. Radon变换就是将数字图像矩阵在某一角度射线方向上做投影变换,按照投影方向累加像素. 2.简述基于区域生长的图像分割的原理. 根据同一物体区域内像素 ...
- python中cv2.putText和cv2.getTextSize
cv2.putText简单参数介绍 下面是官方文档: def putText(img, text, org, fontFace, fontScale, color, thickness=None, l ...
- 空间平面方程matlab求解,在Python中求解平面方程(如在Matlab中)
我有一个数据集,我试图从中得到一架飞机的等式. 即:a x + b y + c = z 在我的情况下,dT = x,dTa = y,Constant = c,dV = z. 我可以在Matlab中很容 ...
- python中cv2库_Python cv2库(人脸检测)
根据访问图片识别 # coding:utf-8 import sys import math import cv2 # 待检测的图片路径 imagepath = r'l.png' face_casca ...
- python中cv2.putText参数详解
cv2.putText(img, str(i), (123,456)), font, 2, (0,255,0), 3) 各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细 其中 ...
最新文章
- 想成为牛逼程序员? 先数数编程语言之父们的头发
- 小布老师视频教程----oracle 9i 性能调优系列培训(全)
- 聚合类新闻client初体验
- Cesium源码编译过程
- 对于数字特征的若干理解
- SQL2000 统计每周,每月,每季,每年的数据
- C#实现乞丐版IOC容器
- html5 audio api 录音,如何使用HTML5 Web Audio API录制我的声音
- 打印完全二叉树java_java 完全二叉树的构建与四种遍历方法示例
- linux wget安装mysql_linux安装mysql
- 江苏2021高考成绩查询全省排名,江苏高考排名查询方法,2021年江苏高考成绩位次全省排名查询...
- Web前端和后端之区分
- Java书写文字格斗游戏
- 手机上传文件到ftp服务器,上传文件到iPhone上的FTP服务器(Upload File to FTP Server on i...
- 【oracle报错】ORA-28000
- 服务器设置密码修改导致的后果
- C# 获取汉字拼音首字母(修正X问题,真正修正)
- GET提交中%5B与%5D代表什么意思?
- 【C语言趣味教程】typedef 真爽不爽不要玩 | 初识结构体
- 快速获取系统字体列表
热门文章
- 中国IT工作者35岁后的发展出路调查报告(2)
- rancher/ui 路由资源对应表
- 软件体系结构层次风格
- 机器学习数据集(训练集、测试集)划分方法
- Jupyter Notebook修改字体大小、颜色等
- NTC热敏电阻原理及应用
- 他晒了一张奶酪照片,被判入狱13年半
- 解决org.apache.zookeeper.KeeperException$UnimplementedException:KeeperErrorCode = Unimplemented for /S
- SaltStack简介
- 1.DLL注入相关概念