我正在编写一个opencv程序,我在另一个stackoverflow问题上找到了一个脚本:计算机视觉:屏蔽人手
当我运行脚本的答案时,我收到以下错误:
Traceback (most recent call last):
File "skinimagecontour.py", line 13, in <module>
contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
代码:
import sys
import numpy
import cv2
im = cv2.imread('Photos/test.jpg')
im_ycrcb = cv2.cvtColor(im, cv2.COLOR_BGR2YCR_CB)
skin_ycrcb_mint = numpy.array((0, 133, 77))
skin_ycrcb_maxt = numpy.array((255, 173, 127))
skin_ycrcb = cv2.inRange(im_ycrcb, skin_ycrcb_mint, skin_ycrcb_maxt)
cv2.imwrite('Photos/output2.jpg', skin_ycrcb) # Second image
contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for i, c in enumerate(contours):
area = cv2.contourArea(c)
if area > 1000:
cv2.drawContours(im, contours, …Run Code Online (Sandbox Code Playgroud) 我正在研究一些扫描的文本图像,我需要突出显示该图像中的所有单词.我知道问题等同于查找周围有额外空格的子图像.
OCR无法使用,我只需要用边框勾勒每个单词.有人可以建议如何使用OpenCV完成它.
我曾尝试阅读有关阈值处理和分段的内容.我只是想找人指点一些相关资料.
我在分割下面的车牌图像时面临问题,而对下面的图像进行阈值处理时,字符被分成多于1个字符.所以我得到了错误的OCR结果.我在对图像进行阈值处理后应用了形态学关闭操作,即使在此之后我也无法正确分割字符.



用于分割上面图像的代码如下
#include <iostream>
#include<cv.h>
#include<highgui.h>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
IplImage *img1 = cvLoadImage(argv[1] , 0);
IplImage *img2 = cvCloneImage(img1);
cvNamedWindow("Orig");
cvShowImage("Orig",img1);
cvWaitKey(0);
int wind = img1->height;
if (wind % 2 == 0) wind += 1;
cvAdaptiveThreshold(img1, img1, 255, CV_ADAPTIVE_THRESH_GAUSSIAN_C,
CV_THRESH_BINARY_INV, wind);
IplImage* temp = cvCloneImage(img1);
cvNamedWindow("Thre");
cvShowImage("Thre",img1);
cvWaitKey(0);
IplConvKernel* kernal = cvCreateStructuringElementEx(3, 3, 1, 1,
CV_SHAPE_RECT,NULL);
cvMorphologyEx(img1, img1, temp, kernal, CV_MOP_CLOSE, 1);
cvNamedWindow("close");
cvShowImage("close",img1);
cvWaitKey(0);
}
Run Code Online (Sandbox Code Playgroud)
下面给出的输出图像..



任何人都可以提供一种很好的方法来分割这些图像中的字符......