openCV
York1996
懒人一枚,热爱提高效率,简化流程,自动办公;
展开
-
pycharm无法识别opencv函数,无法补全,无法看源码的可能解决方案
安装opencv-stubs即可,安装后可能需要刷新下已经安装的库(可以清理cache,或者用ide安装库之后,强行刷新缓存)。原创 2023-06-15 16:19:33 · 437 阅读 · 0 评论 -
如何避免cv2.warpPerspective产生新的值
其中,flags需要设置为。默认的话会产生新的值。原创 2022-11-18 14:42:38 · 304 阅读 · 0 评论 -
cv2.applyColorMap得到的颜色不对,刚好相反的可能原因
applyColorMap的参数为单通道uint8的灰度图,转换完成之后,得到的图示BGR通道的,如果直接用opencv进行保存,结果是没有问题的。但是如果用pil来保存图像,则得到的结果rgb通道刚好是相反的。可以选择用下面的语句将bgr图像转成rgb图像。原创 2022-09-25 13:32:47 · 904 阅读 · 0 评论 -
cv2读取,图片中没有中文,读不到图,none的可能原因
原因可能是路径中有-原创 2022-08-19 20:21:52 · 207 阅读 · 0 评论 -
cv2.fillPoly报错的可能原因
其中,pts的数据类型应该是np.int32,或者64,而不是np.uint8。原创 2022-08-08 11:31:16 · 1885 阅读 · 0 评论 -
执行cv2.resize卡住的可能原因
cv2.resize指定的dsize过大。比如几十万乘以几十万。原创 2022-07-28 10:41:38 · 567 阅读 · 0 评论 -
TypeError: rectangle() missing required argument ‘rec‘ (pos 2)的可能原因
color里面的元素 pt1 pt2确保是int类型的,uint8也不行。原创 2022-07-05 14:20:52 · 1197 阅读 · 0 评论 -
pytorch模型使用nn.UpsamplingBilinear2d转到TDA4有精度损失的原因
pytorch中的UpsamplingBilinear2d的初始化函数def __init__(self, size: Optional[_size_2_t] = None, scale_factor: Optional[_ratio_2_t] = None) -> None: super(UpsamplingBilinear2d, self).__init__(size, scale_factor, mode='bilinear', align_corn.原创 2022-05-30 20:11:01 · 1765 阅读 · 0 评论 -
TypeError: Expected Ptr<cv::UMat> for argument ‘%s‘的可能原因
可能的原因之一cv2的resize,如果选择最近邻插值方式,确保输入是uint8类型的。原创 2022-05-27 13:19:58 · 1590 阅读 · 0 评论 -
opencv,cv2插值方式选择最近邻cv2.INTER_NEAREST仍然产生新的类别的可能原因之一。
众所周知,插值方式如果选择最近邻,在插值的时候,会把最近元素的值当作新像素的值,这样插值之后的所有像素值是原图的子集。不会有新的像素。但是如下代码仍会产生新的像素:arr=cv2.resize(arr,(w,h),cv2.INTER_LINEAR)原因是插值方式,应该用参数指定的方式arr=cv2.resize(arr,(w,h),interpolation=cv2.INTER_LINEAR)具体请看参数定义:上述错误的代码,相当于是指定了dst?def resize(src.原创 2022-04-28 10:55:34 · 4565 阅读 · 4 评论 -
vs c++ 安装使用看图插件(社区版即可)(放大看像素值)
菜单: 扩展-管理扩展搜索image选择image watch 2019进入debug模式,中断情况下,鼠标放到变量上,点击放大镜即可出现界面;鼠标滚轮放大图形到一定程度,可以看到具体的像素值;右键还有伪彩色 归一化等功能;...原创 2022-03-31 17:43:00 · 1266 阅读 · 1 评论 -
pycharm opencv viewer插件显示图片,oom,超出pycharm内存的可能解决办法之一
图片是float64的,显示其需要太多的现存。把数组改成int8类型arr.astype(np.uint8)再进行显示即可原创 2022-03-04 16:33:37 · 2934 阅读 · 0 评论 -
cv2在图片上画不同矩形框,不同框之间产生其他颜色的可能原因
cv2.rectangle(new_gt_mask, p1, p2, color=255, thickness=-1, lineType=cv2.LINE_AA)原因是使用了lineType=cv2.LINE_AA,抗锯齿,这样边缘的时候会做平滑处理,就会和其他的颜色做平均等处理。会生成边界颜色是混合色的效果。(仔细看)下图才是我们想要的...原创 2022-03-03 09:58:04 · 739 阅读 · 0 评论 -
cv2在图片上画图没有效果的可能原因
我使用opencv在图像上puttext,或者是rectangle都没有效果,还是原来的图,最终发现原因是对于原图的切片的变量进行操作,是没有效果的。深层原因应该是img slice没有占用自己的内存。如果在img上画图是正常的...原创 2022-02-21 10:01:02 · 2353 阅读 · 0 评论 -
pytorch dataset读取问题;ValueError: At least one stride in the given numpy array is negative, 的可能解决问题;
ValueError: Caught ValueError in DataLoader worker process 0.ValueError: At least one stride in the given numpy array is negative, and tensors with negative strides are not currently supported. (You can probably work around this by making a copy of you原创 2022-01-17 11:05:12 · 3173 阅读 · 0 评论 -
pip2 python2.7 安装opencv-python cv2遇到问题的可能解决办法 skbuild list(pattern)
pip install opencv-python==4.1.1.26估计是太高版本的不支持。报的错误 Using cached https://mirrors.aliyun.com/pypi/packages/a1/d6/8422797e35f8814b1d9842530566a949d9b5850a466321a6c1d5a99055ee/opencv-python-4.3.0.38.tar.gz Complete output from command python ...原创 2020-12-11 16:16:14 · 1547 阅读 · 0 评论 -
python Unsupported format or combination of formats) in function 'cv::calcHist' 的可能解决办法
里面的img参数,应该是uint类型的,注意。。不是的话用.astype(np.uint8)转化原创 2020-05-12 10:19:37 · 3523 阅读 · 0 评论 -
opencv计算任意两个旋转矩形的交集面积
网上找了很多方法,但是好像用opencv很简洁和快速的解决了。import cv2rect1 = ((0,0),(60,10),45)rect2 = ((1.5,0),(40,30),56)r1 = cv2.rotatedRectangleIntersection(rect2, rect1)area=cv2.contourArea(r1[1])求10000次交集面积用时0.05...原创 2019-12-02 22:53:04 · 4838 阅读 · 2 评论 -
cv2.imwrite()没有效果的可能原因
可能是因为第一个参数是中使用了不存在的路径,imwrite函数不会创建新的文件夹,并且也不会报错。所以可以检查下第一个参数指明的路径到底存不存在。不存在的话手动创建一个。...原创 2019-11-03 21:14:55 · 9115 阅读 · 3 评论 -
cv2画图没有效果的可能原因
可能的原因是声明了单通道的矩阵,但是颜色是三通道的。原创 2019-10-28 16:45:55 · 862 阅读 · 0 评论 -
(-215:Assertion failed) points.checkVector(2, CV_32S) >= 0 in function 'cv::fillConvexPoly'的一种可能原因
原因是points参数应当是一个整数的numpy数组,用浮点类型的数组会导致这个问题。解决方案:np.array(你的浮点类型数据,dtype=np.int)其中dtype应该是data type的意思,也就是数据类型。 ...原创 2018-09-11 18:33:27 · 11344 阅读 · 8 评论 -
python+opencv实现CNN网络结构的可视化(DrawCNN)
先放下成果图: 有很多类似的工具,但是我想把全连接层放在网络的前边部分,draw_convnet就不那么好用了。于是就自己动手实现一个。#元素类型是(上方文字描述,通道数,feature map width,feature map height)如果w和h均是1代表是全连接层。作者qq@603997262CNN_list=[ ("input",1,28,28), ...原创 2018-09-12 10:55:14 · 5105 阅读 · 2 评论 -
批量转换图片大小的代码和软件:2345看图王
在和cv有关的一些模型中,很多都需要输入固定大小的图像,直接resize是一个简单、暴力并且有效的方法。你可以自己写代码,使用opencv来剪切或者resize图像,也是很方便的。(注意图像文件名不能是中文,否则opencv读不出来)import cv2,osMAIN_PATH="E:/python/imgs/"files = os.listdir(MAIN_PATH)coun...原创 2018-09-23 11:24:42 · 650 阅读 · 0 评论 -
transforms.ToTensor()本身有维度转换功能
源码中的一行代码:img = torch.from_numpy(pic.transpose((2, 0, 1))) 再看我写的实验:import cv2,numpy as npfrom torchvision import transformstrans=transforms.Compose( [ transforms.ToTensor(),...原创 2018-09-15 11:05:11 · 23256 阅读 · 0 评论 -
python使用opencv resize图像不进行插值的方法
def resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None): 如果使用vanilla resize,不改变默认参数,就会对原图像进行插值操作。不关你是扩大还是缩小图片,都会通过插值产生新的像素值。对于语义分割,target的处理,如果是对他进行resize操作的话。就希望不产生新的像素值,因为他的颜色信...原创 2018-09-26 17:36:51 · 4790 阅读 · 0 评论 -
could not find a writer for the specified extension in function 'cv::imwrite_'的一种原因
在使用cv2.imwrite()的时候出错。原因在于你给的后缀opencv不支持,或者没有后缀的文件。比如应该是a.jpg,你写成了ajpg。Only 8-bit (or 16-bit unsigned (CV_16U). in case of PNG, JPEG 2000, and TIFF) single-channel or 3-channel (with 'BGR' ch...原创 2018-11-17 11:25:09 · 12306 阅读 · 1 评论 -
python用opencv给图片批量添加字幕
#coding:utf-8import osimport cv2path="C:/Users/qqyor/Desktop/imgs/"li=os.listdir(path)with open("C:/Users/qqyor/Desktop/fonts.txt","r",encoding='utf-8') as f: txt=f.read()for filename,font...原创 2018-11-17 11:40:33 · 2047 阅读 · 2 评论 -
用Python和OpenCV实现照片马赛克拼图(蒙太奇照片)
https://www.bilibili.com/video/av39158788马赛克拼图介绍:相片马赛克(Photomosaic),或称蒙太奇照片、蒙太奇拼贴,是一种影像处理的艺术技巧,利用这个方式做出来的图片,近看时是由许多张小照片合在一起的,但远看时,每张照片透过光影和色彩的微调,组成了一张大图的基本像素,就叫做相片马赛克技巧。最先是由一个美国大学生发明的,但当时限于计算机性能,无...原创 2018-11-25 14:24:24 · 8604 阅读 · 25 评论 -
cv2 TypeError: an integer is required (got type list)的一种可能原因
坐标应该是整数值才对。用int()把float数改成int的就可以了转载 2019-06-08 11:19:14 · 9409 阅读 · 0 评论 -
Visdom显示图片
from visdom import Visdomimport cv2image=cv2.imread(img_path)vis=Visdom(env="img")vis.image(image.transpose(2, 0, 1)[::-1,...])注意cv2的图片是BGR,用visdom显示出来是RGB的,而且通道数在第一位。需要用图示方法进行转换。...代表剩下的维度们,也...原创 2019-06-16 22:56:51 · 3931 阅读 · 0 评论 -
OpenCV中imshow()的几点说明
在使用imshow来显示图片的过程中,由于是自己生成的图片,里面是0到1的小数,我以为它对图片的要求是0到255的范围,所以直接显示0到1会是差不多黑的图片。然后我就给他乘上了255,然后显示出来是白色的图片。然后我使用imread函数从本地文件中读取了一张RGB图片,然后把array打印出来,结果是0到255之间的。随后我把乘的255去掉,显示正常,于是乎我就使用了一下help(cv2.imsh...原创 2018-08-27 00:10:23 · 12384 阅读 · 2 评论