0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
1

OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"

13.11.2015, 09:16. Показов 1966. Ответов 10
Метки нет (Все метки)

Добрый день уважаемые форумчане.
Столкнулся с небольшой проблемой. Выбивает ошибку: "error C2446: :: нет преобразования "const char *" в "_TCHAR*". Помогите пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// ConsoleAppOpencvX.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace cv;
 
IplImage* image = 0;
IplImage* templ = 0;
CvRect rect;
 
int _tmain(int argc, _TCHAR* argv[])
{
    CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY);
    assert(capture);
    //cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320);//1280); 
    //cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 240);//960); 
    IplImage* image = 0, *res = 0;
 
    // шаблон
    [B]char* filename2 = argc >= 3 ? argv[2] : "D:/OpenCV/Image1.jpg";//вот в этом месте выбивает ошибку на ":"[/B]
    templ = cvLoadImage(filename2, 1);
    assert(templ != 0);
    cvNamedWindow("Match", CV_WINDOW_AUTOSIZE);
    // размер шаблона
    int width = templ->width;
    int height = templ->height;
 
    while (1)
    {
        image = cvQueryFrame(capture);// получаем кадр
        cvFlip(image, image, 0);//отображаем зеркально
        cvFlip(image, image, 1);//отображаем зеркально
        //ROI
 
 
        CvRect rect = cvRect(0, 0, 120, 240); // Определение прямоугольника для ИОР
        cvSetImageROI(image, rect);                    // Установка ИОР
        IplImage *res = cvCreateImage(cvSize((rect.width - templ->width + 1), (rect.height - templ->height + 1)), IPL_DEPTH_32F, 1);
        cvMatchTemplate(image, templ, res, CV_TM_SQDIFF_NORMED);// сравнение изображения с шаблоном
 
        // определение лучшее положение для сравнения
        // (поиск минимумов и максимумов на изображении)
        double    minval, maxval, threshold = 0.8;
        CvPoint    minloc, maxloc;
        cvMinMaxLoc(res, &minval, &maxval, &minloc, &maxloc, 0);
        // нормализуем
        cvNormalize(res, res, 1, 0, CV_MINMAX);
        printf("minloc= %d, maxloc= %d\n", minloc, maxloc);
        // выделим область прямоугольником
        cvRectangle(image, cvPoint(minloc.x, minloc.y), cvPoint(minloc.x + templ->width - 1, minloc.y + templ->height - 1), CV_RGB(255, 0, 0), 1, 8);
        cvShowImage("Match", image);
 
        // ждём нажатия клавиши
        cvWaitKey(33);
    }
    // освобождаем ресурсы
    cvReleaseImage(&image);
    cvReleaseImage(&templ);
    cvReleaseImage(&res);
    cvDestroyAllWindows();
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2015, 09:16
Ответы с готовыми решениями:

Ошибка "error C2446: :: нет преобразования "int" в "char *"
Ошибка: &quot;error C2446: :: нет преобразования &quot;int&quot; в &quot;char *&quot; Когда нажимаю двойным кликом на...

Error C2664: atoi: невозможно преобразовать параметр 1 из "_TCHAR *" в "const char *" Как исправить эту ошибку в коде?
#include &quot;stdafx.h&quot; #define _XOPEN_SOURCE 500 #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...

Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]"
Вроде все правильно а все равно не работает. Подскажите в чем ошибка #include &lt;iostream&gt; ...

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *"
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p =...

10
923 / 830 / 284
Регистрация: 27.07.2012
Сообщений: 2,331
13.11.2015, 10:47 2
C++
1
const char* filename2 = argc >= 3 ? argv[2] : "D:/OpenCV/Image1.jpg"; // добавь const в начале
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 11:11  [ТС] 3
Написал, но все равно ошибка: error C2446: :: нет преобразования "const char *" в "_TCHAR *", и еще одна IntelliSense: несовместимые типы операндов ("_TCHAR *" и "const char *")
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 11:26  [ТС] 4
попробовал создать проект в vs 2013 но там ситуация не лучше. Ошибки error C2446: :: нет преобразования "const char *" в "_TCHAR *" уже нету, но появилась другая: Error 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\opencv\build\include\opencv2\flann\logger.h.

OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"

OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 11:28  [ТС] 5
Прошу вашей помощи хоть в одном из вариантов ошибок)
Миниатюры
OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"  
0
923 / 830 / 284
Регистрация: 27.07.2012
Сообщений: 2,331
13.11.2015, 11:50 6
Лучший ответ Сообщение было отмечено Provok как решение

Решение

Цитата Сообщение от Provok Посмотреть сообщение
Error 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
Всё ведь сказано. Определите символ _CRT_SECURE_NO_WARNINGS в самом начале:
C++
1
2
#define _CRT_SECURE_NO_WARNINGS
// ... весь остальной код
1
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 11:57  [ТС] 7
спасибо вам огромное за оперативность) все заработало)
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 12:01  [ТС] 8
ошибка пропала но появилась небольшая проблема другого характера:
OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"
0
923 / 830 / 284
Регистрация: 27.07.2012
Сообщений: 2,331
13.11.2015, 12:13 9
C++
1
2
    templ = cvLoadImage(filename2, 1);
    assert(templ != 0);
assert будет вызывать остановку программы с ошибкой, если условие в скобках не выполняется. Значит в твоём случае templ == 0.
0
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 9
13.11.2015, 12:23  [ТС] 10
Спасибо. Но вот незадача:
OpenCV C++ vs2010 error C2446: :: нет преобразования "const char *" в "_TCHAR *"
0
923 / 830 / 284
Регистрация: 27.07.2012
Сообщений: 2,331
13.11.2015, 12:43 11
Цитата Сообщение от Provok Посмотреть сообщение
Спасибо. Но вот незадача:
Ты не так понял. assert и условие не нужно было менять. Я говорил о том, что templ у тебя оказывается равен нулю там, где должен быть отличен от нуля. assert как раз и служит для такой проверки.

C++
1
2
    templ = cvLoadImage(filename2, 1);
    assert(templ != 0);
cvLoadImage возвращает 0. Надо выяснять, в каких случаях это бывает. Тут я уже не помощник.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2015, 12:43

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *"
for(int i = 0; i&lt; 5; i++) { wr_struc (list); if (strcmp(&amp;list.Sostav,osn_sostav)==0 &amp;&amp;...

Error C2440: инициализация: невозможно преобразовать "const char [12]" в "char *"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void...

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что &quot;char *concat(char *,...)&quot;: невозможно...

Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]"
Прошу помощи, так как раньше прога работала, сейчас решил вернуться и выдает ошибку: #pragma once...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.